Jak przesłać plik lokalny na serwer przez terminal Linux

47

Próbuję przesłać lokalne pliki na serwer za pomocą Putty lub SSH, ale nie mogę ich tam przesłać.

Czy istnieje jakakolwiek bezpośrednia metoda przesyłania pliku z lokalnego na serwer z terminala Linux bez użycia FTP itp.?

Sanjeev Kumar Goswami
źródło
SFTP jest tym, czego szukasz.
chcę przenieść mój lokalny plik na serwer przy użyciu Linux Terminal. Załóżmy, że używaliśmy dostępu do serwera za pomocą putty lub ssh, ale nie mogliśmy przesłać tam pliku przez ten sam terminal.

Odpowiedzi:

64

Pewnie. Użyj scp(bezpieczna kopia) w następujący sposób:

scp [source file] [username]@[destination server]:.

Oczywiście zastąpić nawias [source file], [username]i [destination server]aby dopasować ustawienia lokalne. Więc jeśli plik był cool_stuff.txti twoja nazwa użytkownika na zdalnym serwerze to sanjeevi serwer docelowy to example.com, polecenie byłoby:

scp cool_stuff.txt [email protected]:.

Źródło może być również zdalne, więc możesz to zrobić odwrotnie niż w powyższym przykładzie:

scp [email protected]:cool_stuff.txt .

To polecenie skopiuje plik zdalny cool_stuff.txtdo dowolnego katalogu lokalnego, w którym się znajdujesz. A jeśli robisz to z wieloma plikami, po prostu użyj symbolu wieloznacznego ( *), tak jak w przypadku normalnego cppolecenia.

Również, .just wskazuje bezpośrednią ścieżkę do katalogu; taki jak ten, w którym się znajdujesz w momencie uruchomienia polecenia lub bezpośrednią ścieżkę, którą ma użytkownik zdalny na serwerze docelowym. Ale możesz również podać ścieżkę jak /this/path/right/herew przykładzie lokalnym do zdalnego:

scp cool_stuff.txt [email protected]:/this/path/right/here

Lub przykład zdalnego do lokalnego tutaj:

scp [email protected]:cool_stuff.txt /this/path/right/here

Teraz, jeśli zdalny serwer nie zezwala na SSH i tylko SFTP, SFTP jest właściwą drogą. Jest scpto jednak bardzo przydatne, gdy chcesz po prostu rzucić plik i nie wykonywać całego procesu SFTP ręcznie z wiersza poleceń.

JakeGould
źródło
13

Gdy logowanie do zdalnego serwera odbywa się za pomocą klucza ssh , możemy użyć -iflagi poniżej, aby przekazać nasz klucz do serwera:

scp -i /path/to/.ssh/id_rsa path/to/file/myFiles.gz myServer.com:/folder/on/server

-i plik_identyfikacji
Wybiera plik, z którego odczytywana jest tożsamość (klucz prywatny) do uwierzytelnienia za pomocą klucza publicznego.
Ta opcja jest przekazywana bezpośrednio do ssh (1).

zx8754
źródło
13

Aby dodać odpowiedź Jake'a , możesz określić lokalizację - zamiast po prostu .- do której chcesz skopiować, dodając ścieżkę na końcu adresu URL jako:

scp /path/to/file username@servername/ip:/destination/folder/
CBinyenya
źródło
1
Do Twojej wiadomości odstęp między hostem a ścieżką jest błędem, więc musisz to napisać bez spacji! (edycja tej odpowiedzi nie jest w tej chwili możliwa)
Sliq