Übertragen Sie Dateien zur / von der Sitzung, in der ich mit PuTTY angemeldet bin


81

Ich bin mit PuTTY bei einem Remote-Host angemeldet.

Wie lautet der Befehl zum Übertragen von Dateien von meinem lokalen Computer auf den Computer, bei dem ich bei PuTTY angemeldet bin?

Antworten:


70

Dies ist wahrscheinlich keine direkte Antwort auf Ihre Fragen, aber wenn ich Dateien über eine SSH-Sitzung übertragen muss, verwende ich WinSCP , ein hervorragendes Dateiübertragungsprogramm über SCP oder SFTP. Dies setzt natürlich voraus, dass Sie unter Windows arbeiten.


Ich habe WinScp ausprobiert, muss aber einen Befehl für die Box ausführen, um Berechtigungen zu erhalten. Dies scheint mit WinScp nicht möglich zu sein?
blauer Himmel

@ user470184: richtig. Normalerweise führe ich Putty und WinSCP nebeneinander aus. Tatsächlich können Sie mit WinSCP beginnen und dann gibt es ein Kontextmenü, um "diese Site in Putty zu öffnen", wenn Sie dies wünschen.
Guido Domenici

@ GuidoDomenici Sehen Sie meine Erfahrung mit WinSCP hier: ux.stackexchange.com/q/35936/4424 :-)
corsiKa

1
blue-sky: sudoInformationen zum Erstellen in WinSCP finden Sie unter FAQ. Wie ändere ich den Benutzer nach der Anmeldung (z. B. su root)?
Martin Prikryl

WinSCP stellt keine Verbindung zum Server her, da der Server Anmeldeinformationen über den privaten Schlüssel verwendet. WinSCP unterstützt keinen SSH-1-Schlüssel. Ich suche ein Programm, wie diese Art von Schlüssel unterstützt wird. Hast du eine Idee?
Mischanon

41

  • Klicken Sie auf das Startmenü.
  • Klicken Sie auf Ausführen
  • Geben Sie in das geöffnete Feld cmd ein und klicken Sie auf OK
  • Geben Sie an der Eingabeaufforderung Folgendes ein:

    c:> pscp Quellendateiname Benutzer-ID @ Servername: / Pfad / Zieldateiname.

Zum Beispiel:

c:> pscp november2012 wrhse@warehouse.cit.cornell.edu: / mydata / november2012.

  • Wenn Sie dazu aufgefordert werden, geben Sie Ihr Passwort für den Server ein.

Genießen


14
Und Sie können es wie folgt invertieren: 'c:> pscp wrhse@warehouse.cit.cornell.edu: / mydata / november2012 november2012', um Dateien vom Remote-Computer zu empfangen.
Xan

3
pscp ist Teil des Putty-Pakets, aber es befand sich nicht auf meinem Pfad, daher musste ich es meinem Pfad hinzufügen, bevor dies funktionierte. pscp sollte sich an derselben Stelle befinden wie die Kitt-Exe. in meinem Fall c: \ Programme (x86) \ PuTTY.
Frek

Was ist, wenn wir nach dem Anmelden den Benutzer wechseln müssen? sudo su - user
Stevoisiak

1
Wenn Sie nicht das gesamte PuTTY-Paket installiert haben, müssen Sie das pscp-Programm separat von chiark.greenend.org.uk/~sgtatham/putty/latest.html herunterladen
James Newton

16

PuTTY wird normalerweise mit einem Client namens psftp geliefert, den Sie für diesen Zweck nutzen können. Ich glaube nicht, dass Sie dies über den Standard-PuTTY-Client tun können (obwohl ich mich möglicherweise darin geirrt habe).

Mit PuTTY können Sie nur den Remote-Computer manipulieren. Es bietet keine direkte Verbindung zwischen den beiden Dateisystemen mehr als das Sitzen auf dem Remote-Computer.


psftp ist nicht auf einem Remote-Computer installiert
blue-sky

4
Das muss nicht sein. Nur auf Ihrem lokalen Computer.
CorsiKa

Und hier sind einige Informationen zum Übertragen von Dateien mit psftp: pic.dhe.ibm.com/infocenter/tsmscv13/v1r0m0/…
shasi kanth

8

Es gibt keine Möglichkeit, eine Dateiübertragung von / zu lokalem Windows von einer im PuTTY-Fenster geöffneten SSH-Sitzung zurück zu initiieren.

Obwohl PuTTY die gemeinsame Nutzung von Verbindungen unterstützt.

Während Sie noch einen kompatiblen Dateiübertragungsclient (den pscpoder psftp) ausführen müssen , ist keine neue Anmeldung erforderlich. Er verwendet automatisch (falls aktiviert) eine vorhandene PuTTY-Sitzung.

Informationen zum Aktivieren der Freigabe finden Sie unter:
Freigeben einer SSH-Verbindung zwischen PuTTY-Tools .


Alternativ können Sie WinSCP verwenden, einen GUI-SFTP / SCP-Client. Während Sie die Remote-Site durchsuchen, können Sie das SSH-Terminal jederzeit über die Schaltfläche In PuTTY öffnen für dieselbe Site öffnen .

Siehe Eröffnungssitzung in PuTTY .

Mit einem zusätzlichen Setup können Sie PuTTY sogar dazu bringen, automatisch zu demselben Verzeichnis zu navigieren, das Sie mit WinSCP durchsuchen.

Siehe Öffnen von PuTTY im selben Verzeichnis .

(Ich bin der Autor von WinSCP)


1
Martin, WinSCP ist ein Knaller - ein guter Jobmann. Und danke wirklich :-)
shadowf

7

Sie können psftp.exe auch herunterladen von:

http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

Wenn Sie es ausführen, geben Sie Folgendes ein:

open "server name"

Dann:

put "file name"

(Geben Sie help ein, um eine vollständige Liste der Befehle zu erhalten.)

Sie können auch eingeben get <file name>, um Dateien von einem Remotecomputer auf den lokalen Computer herunterzuladen.


6

Wenn es sich nur um eine Datei handelt, können Sie das folgende Verfahren (in Kitt) anwenden:

  1. vi Dateiname.Erweiterung (öffnet neuen Dateinamen im aktiven Ordner auf dem Server),
  2. Kopieren + Mausklick mit der rechten Maustaste über Kitt (Kopieren und Einfügen),
  3. bearbeiten und speichern. => vi Editorbefehle

Bearbeiten Sie die Dateiberechtigung mit dem nächsten Befehl: chmod u + x filename.extension


Dies funktioniert erstaunlich gut für Textdateien, die in die Zwischenablage passen. Für Binärdateien siehe xxd, aber Sie benötigen auch ein Windows-Programm, um Binärdateien in Hex zu konvertieren. zB HEXDUMP
James Newton

4

Da Sie nach / von gefragt haben, ist hier ein Trick, der für den 'von'-Teil funktioniert. Öffnen Sie den Bildschirm "Einstellungen ändern ...", Terminal und wählen Sie unter "Drucker, an den die ANSI-Druckerausgabe gesendet werden soll:" die Option "Nur Allgemein / Text".

Führen Sie dies jetzt auf dem Remote-System in einer Zeile aus:

tput mc5; cat whatever.txt; tput mc4

Putty informiert Sie darüber, dass die Datei gespeichert wurde. Dazu wird das Terminal in den Druckermodus versetzt (tput mc5), die Datei auf dem Bildschirm gedruckt (cat) und anschließend der Druckermodus ausgeschaltet (tput mc4). Wenn Sie nicht alle Befehle in eine Zeile setzen, wird der Bildschirm eingefroren angezeigt, da Putty die gesamte Terminalausgabe in einer Datei im Hintergrund speichert.

Wenn Sie sich auf einem eingeschränkteren System befinden, das nicht über den Befehl tput verfügt (z. B. ein qnap), können Sie printf "\ x1b [5i" anstelle von tput mc5 und printf "\ x1b [4i" anstelle von tput mc4 verwenden .

Der Befehl in der Mitte ist nur alles, was auf dem Bildschirm gedruckt wird. Verwenden Sie also tail -n 10000 blah.log, um die letzten 10.000 Zeilen der Protokolldatei herunterzuladen, oder verwenden Sie einen base64-Encoder, um eine Binärdatei etwas zuzuordnen, das Sie drucken (und dann auf Ihrem lokalen System dekodieren) können:

printf "\x1b[5i"; openssl enc -base64 -in something.zip; printf "\x1b[4i"

Sie, Sir, sind ein Genie! Ich habe seit einiger Zeit nach einer Möglichkeit gesucht, Dateien über eine aktive SSH-Sitzung zu übertragen, und dies ist die erste, die ich problemlos zum Laufen bringen kann. Wissen Sie, ob diese Technik so geändert werden kann, dass sie mit dem Terminal auf einem MacOS- oder Linux-basierten Client (dh anderen Terminals als PuTTY) funktioniert?
Dominic P

3

Wenn Sie eine Überprüfung des privaten Schlüssels durchführen müssen; Führen Sie an der Eingabeaufforderung (cmd) aus

Zuerst;

set PATH=C:\PuttySetupLocation

Zweite;

pscp -i C:/MyPrivateKeyFile.ppk C:/MySourceFile.jar ubuntu@55.69.41.155:/home/ubuntu

Wenn Sie zusätzliche Optionen benötigen, klicken Sie auf den folgenden Link. https://the.earth.li/~sgtatham/putty/0.60/htmldoc/Chapter5.html


Was ist der Sinn von set PATH=C:\PuttySetupLocation? Warum machst du das nicht C:\PuttySetupLocation\pscpdirekt? - Auch wenn Sie Änderungen vornehmen möchten PATH, sollten Sie den neuen Pfad hinzufügen und nicht vollständig zurücksetzen.
Martin Prikryl

Laufsatz PATH = C: \ PuttySetupLocation nicht den Weg nicht zurücksetzt, fügt nur PSCP auf Pfad als neuen Eintrag. Außerdem haben Sie Recht mit der Verwendung von C: \ PuttySetupLocation \ pscp. Möglicherweise ist dies auch gültig.
ÖMER TAŞCI

1
Es setzt den Pfad zurück.
Martin Prikryl

welches Passwort? Es sollten keine Passworteinstellungen in Beziehung gesetzt werden.
ÖMER TAŞCI

Welches Passwort? Vielleicht haben Sie meinen Kommentar sofort gelesen, nachdem ich ihn mit dem Tippfehler "Passwort" anstelle von "Pfad" gepostet habe . Ich habe es eine Sekunde nach dem Posten behoben (lange vor deinem Kommentar).
Martin Prikryl

3

Schau hier:

http://web.archive.org/web/20170106202838/https://it.cornell.edu/services/managed_servers/howto/file_transfer/fileputty.cfm#puttytrans

Es wird die Verwendung pscp.exevon PuTTY empfohlen , das hier zu finden ist: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

Eine direkte Übertragung wie FTP ist nicht möglich, da alle Befehle während Ihrer Sitzung an den Server gesendet werden.


Danke, ich melde mich mit einem privaten Schlüssel an, dessen Link nicht detailliert zu sein scheint.
blauer Himmel

1
@ user470184 Wenn Sie es geschafft haben, zwei Jahre ohne herauszufinden, wie, können einige Anweisungen, wie dies getan werden kann, am Ende von finden: > diese Seite <
Hawkwing

1

Übertragen von Dateien mit Putty (pscp / plink.exe)

Die Standard-Putty-Installation bietet mehrere Möglichkeiten zum Übertragen von Dateien. Höchstwahrscheinlich puttybefindet es sich in Ihrem Standardpfad, sodass Sie direkt puttyüber die Eingabeaufforderung aufrufen können . Wenn dies nicht der Fall ist, müssen Sie möglicherweise Ihre Umgebungsvariablen ändern. Siehe Anweisungen hier: https://it.cornell.edu/managed-servers/transfer-files-using-putt

Schritte

  1. Öffnen Sie die Eingabeaufforderung durch Eingabe cmd

  2. So übertragen Sie Ordner von Ihrem Windows-Computer auf einen anderen Windows-Computer (beachten Sie das -rFlag, das angibt, dass die Dateien rekursiv übertragen werden, ohne dass Sie sie komprimieren müssen): 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)/"

  3. So übertragen Sie Dateien von Ihrem Windows-Computer auf einen anderen Windows-Computer : 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)/"

  4. Manchmal haben Sie möglicherweise nur plinkinstalliert. plinkkann möglicherweise zum Übertragen von Dateien verwendet werden, ist jedoch am besten auf einfache Textdateien beschränkt. Es kann ein unbekanntes Verhalten bei Binärdateien haben ( /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"

  5. Um Dateien von einem Linux-Server auf einen Windows-Computer auf einen Linux-Computer zu übertragen, verwenden Sie pscp -r -i C:/Users/username/.ssh/id_rsa.ppk "C:/Program Files (x86)/Terminal PC" username@10.15.48.16:/home/username

Damit all dies funktioniert, benötigen Sie den richtigen öffentlichen / privaten Schlüssel. Informationen zum Generieren für Kitt finden Sie unter: https://superuser.com/a/1285789/658319


0

Auf diese Weise ermöglicht pscp unter Windows einen direkten Upload (ohne die Anforderung, z. B. Schlüssel zu akzeptieren):

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.