Wie kopiere ich eine Datei ohne scp in einer SSH-Sitzung?
55
Ich habe mich mit ssh bei einem System angemeldet und auf beiden Systemen ist kein scp vorhanden. So kopieren Sie eine Datei, ohne das Programm scp zu verwenden.
Ist netcat (nc) auf beiden Systemen vorhanden? Wenn dies der Fall ist, tunneln Sie mit Ihrer ssh-Sitzung einen TCP-Port und verwenden Sie nc an diesem Port.
Haben Sie rsync?
Slhck
3
Sie können dies auch tun:ssh user@remotehost cat /path/to/remote/file > /path/to/local/file
@ggg das stimmt überhaupt nicht. cd /tmp; cat /bin/bash > test; chmod a+x test; diff test /bin/bash; ./testalles funktioniert gut. Es gibt nichts von Natur aus "Magisches" an Binärdateien. Beide Dateien in meinem Beispiel sind im Vergleich identisch und haben die gleiche Prüfsumme. Das Kopieren und Einfügen aus einem Terminalfenster heraus funktioniert zwar nicht, da beispielsweise Steuersequenzen und nicht druckbare Zeichen vorhanden sind. Bei Verwendung von Pipes wie diesen kommt dies jedoch nie in die Nähe eines Terminals.
Flexo
@Flexo Ich brauche so etwas, die einzige Ausnahme ist, ich muss alles jpg aus einem Ordner einfügen. Wie kann ich / storage / sdcard1 / * jpg und gleichnamige >Dateien durchlaufen ?
George Profenza
2
@ GeorgeProfenza müssen Sie tarin die Mischung hinzufügen . tar cvf - /path/*.jpg | ssh [email protected] "tar xvf -"oder etwas ähnliches sollte funktionieren.
Flexo
Eine Folge der obigen Aussagen von ggg und Flexo ist, dass Sie die Option "-t" nicht für ssh verwenden können.
mjg123
1
Nett! Sie können auch pv anstelle der ersten Katze verwenden, um eine Fortschrittsanzeige zu erhalten, z. B.pv file | ssh ajw@dogmatix "cat > remote"
+1 aber es sollte beachtet werden, dass das OP versucht, scp zu vermeiden, da es auf den Systemen nicht existiert. In Anbetracht dieser Einschränkung ist es auch wahrscheinlich, dass ein FTP-Server auf der empfangenden Seite vorhanden sein muss, wodurch der Kopiervorgang von einer anderen Software abhängt, als dies normalerweise standardmäßig der Fall ist.
Paul Sasik
-1
python3 -m http.serverim selben Verzeichnis mit dem gewünschten Datei - danach können Sie curloder wgetoder eine Datei mit Ihrem Browser herunterladen. Beachten Sie, dass mit diesem Befehl alle Ihre Dateien aus dem aktuellen Verzeichnis öffentlich verfügbar sind, bis Sie Ctrl+ drücken C.
rsync
?ssh user@remotehost cat /path/to/remote/file > /path/to/local/file
Antworten:
So senden Sie eine Datei:
Oder:
So empfangen Sie eine Datei:
quelle
cd /tmp; cat /bin/bash > test; chmod a+x test; diff test /bin/bash; ./test
alles funktioniert gut. Es gibt nichts von Natur aus "Magisches" an Binärdateien. Beide Dateien in meinem Beispiel sind im Vergleich identisch und haben die gleiche Prüfsumme. Das Kopieren und Einfügen aus einem Terminalfenster heraus funktioniert zwar nicht, da beispielsweise Steuersequenzen und nicht druckbare Zeichen vorhanden sind. Bei Verwendung von Pipes wie diesen kommt dies jedoch nie in die Nähe eines Terminals.>
Dateien durchlaufen ?tar
in die Mischung hinzufügen .tar cvf - /path/*.jpg | ssh [email protected] "tar xvf -"
oder etwas ähnliches sollte funktionieren.pv file | ssh ajw@dogmatix "cat > remote"
Versuche dies:
quelle
Sie können
xxd
und einige hässliche Anführungszeichen verwenden, um mehrere Dateien zu kopieren, Befehle auf ihnen auszuführen und sie auszuführen:quelle
Neben dem Weiterleiten der Datei an einen Remote-
cat
Computer können Sie möglicherweise auch einen SFTP-Client zum Übertragen der Dateien verwenden.quelle
python3 -m http.server
im selben Verzeichnis mit dem gewünschten Datei - danach können Siecurl
oderwget
oder eine Datei mit Ihrem Browser herunterladen. Beachten Sie, dass mit diesem Befehl alle Ihre Dateien aus dem aktuellen Verzeichnis öffentlich verfügbar sind, bis Sie Ctrl+ drücken C.quelle