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.
sudow 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 ( pscplub 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\pscpbezpośrednio? - Nawet jeśli chcesz zmodyfikować PATH, powinieneś dodać nową ścieżkę, a nie całkowicie ją resetować.
Popatrz tutaj:
Zaleca korzystanie pscp.exez 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 puttyznajduje się na domyślnej ścieżce, więc możesz bezpośrednio wywołać
puttyz 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 -rflagę, 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 plinkzainstalować. plinkmoż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