it-swarm.com.de

Wie überträgt man eine Datei zwischen zwei Remote-Servern mit scp von einem dritten lokalen Computer?

Ich versuche, eine Datei von einem remote -Server auf einen anderen Remote -Server von meiner local - Maschine zu kopieren ... __ Hier versuche ich das zu tun

localA $ scp [email protected]:/path/to/file [email protected]:/path

Das Problem ist, dass ich auf den Remote-Computern zwei Passwörter für userB und userC übergeben muss. 

Laut Garron sollte das oben funktionieren, aber mir wurde die Erlaubnis verweigert.

Permission denied (gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive).
lost connection

Irgendwelche Vorschläge?

18
Alan

Diese Frage existiert bereits bei Superuser: 

https://superuser.com/questions/686394/scp-between-two-remote-hosts-von-my-third-pc

scp -3 [email protected]:/home/user1/file1.txt [email protected]:/home/user2/file1.txt

Wie dort beschrieben, weist -3 die Option an, den Verkehr durch den PC zu leiten, auf dem der Befehl ausgegeben wird.

Das Obige gilt, wenn sich remote1 und remote2 im selben Netzwerk befinden.

Falls nicht: - Sie müssen die Portweiterleitung verwenden

29
user6459825

Wenn Sie von beiden lokalen Servern (lokal -> remote1 & local -> remote2) ssh auf beide Remote-Server übertragen können, können Sie Folgendes versuchen:

ssh -A -t [email protected] scp srcpath [email protected]:destpath

Dies wird direkt von remote1 nach remote2 übertragen, wobei Ihre lokalen Anmeldeinformationen verwendet werden.

Wenn Sie nicht nach Passwörtern gefragt werden möchten, sollten Sie die Datei authorised_keys auf Remotes einrichten.

30
RubenCaro

Dies ist möglich, wenn Sie die folgende Befehlszeile im Linux-Terminal verwenden:

scp -3 user1 @ ip: pfad/from/verzeichnis/benutzer2 @ ip: pfad/zum/verzeichnis

es erscheint eine Eingabeaufforderung, in der Sie nach Kennwörtern gefragt werden:

Benutzer1 @ IP-Kennwort: Benutzer2 @ IP-Kennwort:

Wenn Sie beide Passwörter der Reihe nach eingeben, indem Sie nach dem ersten Passwort die Eingabetaste drücken, sollte dies akzeptiert werden. Selbst wenn Sie beide Passwörter erneut in der richtigen Reihenfolge eingeben, jedoch nicht die Eingabetaste drücken, wird das Passwort nicht akzeptiert.

Sie müssen zuerst user2 eingeben, dann drücken Sie die Eingabetaste, geben Sie dann das Passwort von user1 ein und drücken Sie die Eingabetaste. Das wird funktionieren.

Ich weiß, dass es nicht richtig klingt, aber nur das wird funktionieren. Dies ist ein Fehler in SCP.

3
Rishav Sharan

Ich finde -o "ForwardAgent yes” macht den Trick:

localA $ scp -o "ForwardAgent yes” [email protected]:/path/to/file [email protected]:/path

Ich mag das besser als der -3, da ich nicht will, dass eine mittlere Maschine die Dinge verlangsamt. Ich mag auch die Antwort von @RubenCaro, aber das scheint direkter zu sein.

1
wcochran

Sie benötigen Kennwörter nur, wenn Sie keine Einträge in der Datei authorised_keys haben. Nachdem Sie sich an den 2 Servern angemeldet haben (localA -> remoteB und remoteB -> remoteC) und die sichere Verbindung hergestellt haben, sollte Ihr ursprünglicher Befehl funktionieren.

1
DS.