In der Vergangenheit war die Art und Weise, in der das Kopieren von Dateien zwischen Remote-Systemen scp
( naiv ) aufgerufen wurde, sehr unpraktisch: wenn Sie beispielsweise geschrieben haben
scp user1@remote1:/home/user1/file1.txt user2@remote2:/home/user2/file1.txt
scp
würde zuerst eine ssh
Sitzung auf remote1 eröffnen und dann scp
von dort auf remote2 laufen. Damit dies funktioniert, müssen Sie die Berechtigungsnachweise für remote2 auf remote1 einrichten.
Die moderne Art, dies zu tun ("modern", weil es erst vor ein paar Jahren implementiert wurde und vielleicht nicht jeder ein -3
-fähiges System hat scp
), erfordert zwei Schritte. Der erste notwendige Schritt besteht darin ~/.ssh/config
, alle Optionen für die Verbindung zu remote1 und remote2 wie folgt einzurichten:
Host remote1.example.org
Port 2222
IdentityFile /path/to/host1-id_rsa
Host remote2.example.org
Port 6969
IdentityFile /path/to/host2-id_rsa
Auf diese Weise ist es möglich, alle erforderlichen Optionen ohne Mehrdeutigkeiten an den Befehl zu übergeben : Wenn wir beispielsweise für die Befehlszeilenschnittstelle den Port 2222 ohne die obige Konfiguration verwendet hätten, wäre unklar gewesen, ob wir auf remote1 oder remote2 und verweisen ebenfalls für die datei mit den kryptografischen schlüsseln. Auf diese Weise bleibt die CLI übersichtlich und einfach.
Zweitens verwenden Sie die -3
Option wie folgt:
scp -3 user1@remote1:/home/user1/file1.txt user2@remote2:/home/user2/file1.txt
Die -3
Option weist scp
an, den Datenverkehr über den PC zu leiten, auf dem der Befehl ausgegeben wird, auch wenn er ein Dritter für die Übertragung ist. Auf diese Weise müssen sich die Berechtigungsnachweise nur auf dem ausstellenden PC, dem Drittanbieter, befinden.