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 user@xx.x.x.xx/var/www/

To prosi mnie o wpisanie mojego hasła lokalnego. Potem wracacp: user@xx.x.x.xx/var/www: Not a directory

sudo scp /Users/myname/magento.tar.gz user@xx.x.x.xx/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.

Odpowiedzi:


204

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

scp magento.tar.gz user@xx.x.x.xx:/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 user@xx.x.x.xx:

Następnie SSH i przenieś plik:

ssh user@xx.x.x.xx
sudo mv magento.tar.gz /var/www

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 user@xx.xxxx: / 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

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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.