Jestem zalogowany do zdalnego hosta za pomocą PuTTY.
Jakie polecenie przesyła pliki z mojego komputera lokalnego do komputera, na którym jestem zalogowany w PuTTY?
Jestem zalogowany do zdalnego hosta za pomocą PuTTY.
Jakie polecenie przesyła pliki z mojego komputera lokalnego do komputera, na którym jestem zalogowany w PuTTY?
Odpowiedzi:
Prawdopodobnie nie jest to bezpośrednia odpowiedź na to, o co pytasz, ale kiedy muszę przesłać pliki przez sesję SSH, używam WinSCP , który jest doskonałym programem do przesyłania plików przez SCP lub SFTP. Oczywiście zakłada się, że korzystasz z systemu Windows.
sudo
w WinSCP, zobacz FAQ Jak zmienić użytkownika po zalogowaniu (np. su root)?
c:> pscp nazwa_pliku_źródłowego id_użytkownika @ nazwa_serwera: / ścieżka / nazwa_pliku_docelowego.
c:> pscp november2012 wrhse@warehouse.cit.cornell.edu: / mydata / november2012.
Cieszyć się
sudo su - user
PuTTY zwykle jest dostarczany z klientem o nazwie psftp, którego można w tym celu wykorzystać. Nie wierzę, że możesz to zrobić za pomocą standardowego klienta PuTTY (chociaż mogę się w tej kwestii udowodnić).
PuTTY umożliwia tylko manipulowanie maszyną zdalną. Nie zapewnia bezpośredniego połączenia między dwoma systemami plików, tak samo jak siedzenie na zdalnym komputerze.
Nie ma możliwości zainicjowania transferu plików z powrotem do / z lokalnego systemu Windows z sesji SSH otwartej w oknie PuTTY.
Chociaż PuTTY obsługuje udostępnianie połączenia.
Chociaż nadal musisz uruchomić kompatybilnego klienta przesyłania plików ( pscp
lub psftp
), nie jest wymagane nowe logowanie, automatycznie (jeśli jest włączone) wykorzystuje istniejącą sesję PuTTY.
Aby włączyć udostępnianie, zobacz:
Udostępnianie połączenia SSH między narzędziami PuTTY .
Alternatywnym sposobem jest użycie WinSCP, klienta GUI SFTP / SCP. Podczas przeglądania zdalnej witryny możesz w dowolnym momencie otworzyć terminal SSH w tej samej witrynie za pomocą przycisku Otwórz w PuTTY .
Zobacz sesję otwarcia w PuTTY .
Dzięki dodatkowej konfiguracji możesz nawet sprawić, by PuTTY automatycznie nawigował do tego samego katalogu, który przeglądasz za pomocą WinSCP.
Zobacz Otwieranie PuTTY w tym samym katalogu .
(Jestem autorem WinSCP)
Plik psftp.exe można również pobrać z:
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
Po uruchomieniu wpisujesz:
open "server name"
Następnie:
put "file name"
(Wpisz help, aby uzyskać pełną listę poleceń).
Możesz także wpisać tekst, get <file name>
aby pobrać pliki z komputera zdalnego na komputer lokalny.
Jeśli jest to tylko jeden plik, możesz zastosować następującą procedurę (w kitu):
Edytuj uprawnienia do plików następną komendą: chmod u + x nazwa_pliku.rozszerzenie
Ponieważ pytałeś o to do / z, oto sztuczka, która działa dla części „od”. Otwórz ekran „Zmień ustawienia ...”, Terminal i w sekcji „Drukarka, aby wysłać dane wyjściowe drukarki ANSI do:” wybierz „Ogólne / Tylko tekst”
Teraz w systemie zdalnym uruchom to w jednej linii:
tput mc5; cat whatever.txt; tput mc4
Putty poinformuje Cię, że plik został zapisany. To, co robi, to przełączenie terminala w tryb drukarki (tput mc5), wydrukowanie pliku na ekranie (cat), a następnie wyłączenie trybu drukarki (tput mc4). Jeśli nie umieścisz wszystkich poleceń w jednej linii, ekran będzie wyglądał na zamrożony, ponieważ Putty zapisuje wszystkie dane wyjściowe terminala do pliku w tle.
Jeśli korzystasz z bardziej ograniczonego systemu, który nie ma polecenia tput (np. Qnap), możesz spróbować printf "\ x1b [5i" zamiast tput mc5 i printf "\ x1b [4i" zamiast tput mc4 .
Polecenie w środku to po prostu wszystko, co drukuje na ekranie. Więc użyj tail -n 10000 blah.log, aby pobrać ostatnie 10 tys. Wierszy pliku dziennika, lub użyj kodera base64, aby zmapować plik binarny na coś, co możesz wydrukować (a następnie zdekodować w systemie lokalnym):
printf "\x1b[5i"; openssl enc -base64 -in something.zip; printf "\x1b[4i"
Jeśli musisz przeprowadzić walidację klucza prywatnego; w wierszu polecenia (cmd), uruchom
Pierwszy;
set PATH=C:\PuttySetupLocation
Druga;
pscp -i C:/MyPrivateKeyFile.ppk C:/MySourceFile.jar ubuntu@55.69.41.155:/home/ubuntu
Ponadto, jeśli potrzebujesz dodatkowych opcji, spójrz na poniższy link. https://the.earth.li/~sgtatham/putty/0.60/htmldoc/Chapter5.html
set PATH=C:\PuttySetupLocation
? Dlaczego nie zrobisz tego C:\PuttySetupLocation\pscp
bezpośrednio? - Nawet jeśli chcesz zmodyfikować PATH
, powinieneś dodać nową ścieżkę, a nie całkowicie ją resetować.
Popatrz tutaj:
Zaleca korzystanie pscp.exe
z PuTTY, które można znaleźć tutaj: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
Bezpośredni transfer, taki jak FTP, nie jest możliwy, ponieważ wszystkie polecenia podczas sesji są wysyłane do serwera.
Przesyłanie plików za pomocą Putty (pscp / plink.exe)
Domyślna instalacja kitu zapewnia wiele sposobów przesyłania plików. Najprawdopodobniej putty
znajduje się na domyślnej ścieżce, więc możesz bezpośrednio wywołać
putty
z wiersza polecenia. Jeśli tak się nie stanie, może być konieczna zmiana zmiennych środowiskowych. Zobacz instrukcje tutaj:
https://it.cornell.edu/managed-servers/transfer-files-using-putt
Kroki
Otwórz wiersz polecenia, wpisując cmd
Aby przenieść foldery z komputera z systemem Windows na inny komputer z systemem Windows
(zwróć uwagę na -r
flagę, która wskazuje, że pliki będą przesyłane rekurencyjnie, nie ma potrzeby ich archiwizowania):
pscp -r -i C:/Users/username/.ssh/id_rsa.ppk "C:/Program Files (x86)/Terminal PC" ipython_user@10.15.48.54:/"C:/Program Files (x86)/"
Aby przenieść pliki z komputera z systemem Windows na inny komputer z systemem Windows,
użyj:
pscp -i C:/Users/username/.ssh/id_rsa.ppk "C:/Program Files (x86)/Terminal PC" ipython_user@10.15.48.54:/"C:/Program Files (x86)/"
Czasami możesz tylko plink
zainstalować. plink
może być potencjalnie używany do przesyłania plików, ale najlepiej ogranicza się do prostych plików tekstowych. Może mieć nieznane zachowanie w plikach binarnych ( /superuser/1289455/create-text-file-on-remote-machine-using-plink-putty-with-contents-of-windows-lo ):
plink -i C:/Users/username/.ssh/id_rsa.ppk user@host <localfile "cat >hostfile"
Aby przesłać pliki z serwera Linux na komputer z systemem Windows na komputer z systemem Linux, użyj
pscp -r -i C:/Users/username/.ssh/id_rsa.ppk "C:/Program Files (x86)/Terminal PC" username@10.15.48.16:/home/username
Aby to wszystko działało, musisz mieć odpowiedni klucz publiczny / prywatny. Aby wygenerować to dla szpachli, patrz: https://superuser.com/a/1285789/658319
W ten sposób w systemie Windows pscp umożliwia bezpośrednie przesyłanie (bez żądania np. Akceptacji klucza):
pscp.exe -scp -pw 'my_pw' -v -i my.ppk -l root -batch -sshlog logfile19.txt -hostkey ba:2e:4d:12:68:82:19:a1:d2:22:bc:12:c2:1a:44:a7 hallo4.txt root@10.10.10.10:/srv/www/htdocs/xml_parser/hallo4.txt