Lokalny plik SSH SCP do zdalnego w terminalu Mac Os X

90

Próbuję skopiować lokalny plik „magento.tar.gz” z mojego komputera lokalnego na zdalny serwer przy użyciu SSH przez VPN. To jest połączenie z wewnętrznym adresem IP maszyny wirtualnej, którego użyłem tutaj jako xx.xxxx.

Mam pełny dostęp do „sudo” na koncie SSH, więc nie powinno być problemu z kopiowaniem. Próbowałem następujących rzeczy:

Próbowałem następujących rzeczy (plik magento.tar.gz jest już w lokalnym katalogu głównym)

sudo scp magento.tar.gz [email protected]/var/www/

To prosi mnie o wpisanie mojego hasła lokalnego. Potem wracacp: [email protected]/var/www: Not a directory

sudo scp /Users/myname/magento.tar.gz [email protected]/var/www/

Zwraca to samo.

Czy muszę gdzieś dołączyć SSH?

Czy muszę najpierw połączyć się z witryną przez SSH?

Uwaga dodatkowa: udało mi się połączyć przez SSH z serwerem, przejść do katalogu i utworzyć folder i usunąć go za pomocą sudo mkdiritp., Więc zdecydowanie mam uprawnienia.

James
źródło

Odpowiedzi:

204

Najpierw musisz dodać :po adresie IP, aby wskazać ścieżkę:

scp magento.tar.gz [email protected]:/var/www

Nie sądzę, że trzeba . W tym przypadku nie ma to wpływu na zdalną maszynę, tylko na lokalne polecenie.sudoscp

Jeśli Twój user@ xx.xxxx nie ma dostępu do zapisu /var/www, musisz to zrobić 2 razy:

Skopiuj na serwer zdalny w folderze domowym ( :reprezentuje zdalny folder domowy, użyj w :subfolder/razie potrzeby lub :/home/user/dla pełnej ścieżki):

scp magento.tar.gz [email protected]:

Następnie SSH i przenieś plik:

ssh [email protected]
sudo mv magento.tar.gz /var/www
JScoobyCed
źródło
Dzięki. Próbowałem z dwukropkiem, ale odmówiono mi uprawnień - poinformowano mnie, że mam pełny dostęp do sudo, więc uprawnienia nie powinny stanowić problemu.
James
1
Dzięki!!! Musiałem wykonać SSH pilota i pwd, aby znaleźć domyślny katalog, do którego zostałem przeniesiony, czyli / home / username - scp magento.tar.gz [email protected]: / home / username / załatwił sprawę!
James
19

Aby wyjaśnić odpowiedź udzieloną przez JScoobyCed, polecenie scp nie może kopiować plików do katalogów, które wymagają uprawnień administratora. Możesz jednak użyć polecenia scp, aby skopiować do katalogów należących do użytkownika zdalnego.

Tak więc, aby skopiować do katalogu, który wymaga uprawnień roota, musisz najpierw skopiować ten plik do katalogu należącego do zdalnego użytkownika za pomocą polecenia scp. Następnie musisz zalogować się na zdalne konto za pomocą ssh. Po zalogowaniu możesz przenieść plik do wybranego katalogu za pomocą polecenia sudo mv. Krótko mówiąc, polecenia do użycia są następujące:

Używając scp, skopiuj plik do katalogu na koncie użytkownika zdalnego, na przykład do katalogu Dokumenty:

scp /path/to/your/local/file remoteUser@some_address:/home/remoteUser/Documents

Następnie zaloguj się do konta użytkownika zdalnego za pomocą ssh, a następnie przenieś plik do katalogu z ograniczeniami za pomocą sudo:

ssh remoteUser@some_address
sudo mv /home/remoteUser/Documents/file /var/www
legenda12
źródło
0

Uważaj, aby nazwa twojego pliku też nie zawierała :. Odkryłem, że muszę, mv blah-07-08-17-02:69.txt no_colons.txta scp no-colons.txt server:potem nie zapomnij mvwrócić na serwer. Na wszelki wypadek, gdyby to był problem.

pjammer
źródło
1
Nie stanowi to problemu, jeśli dodasz tylko ./przed lokalną nazwą, na przykładscp ./blah-07-08-17-02:69.txt server:
Anders Tornblad