Ich möchte einen öffentlichen SSH-Schlüssel aus ~/.ssh/id_rsa.pub
kopieren Datei auf meinem lokalen Rechner in den ~/.ssh/authorized_keys
Datei auf einem entfernten Host, der zwei SSH-Hops entfernt ist. Mit anderen Worten, localhost
hat nur ssh-Zugriff auf host1
, aber host1
hat ssh-Zugriff auf host2
. Ich möchte meinen öffentlichen SSH-Schlüssel von localhost
kopieren zu host2
.
Um einen SSH-Schlüssel auf einen Remote-Host zu kopieren, der nur einen Hop entfernt ist, gibt die SSH-Dokumentation den Befehl:
ssh-copy-id -i ~/.ssh/mykey [email protected]
Gibt es eine Möglichkeit, den Schlüssel mit einem einzigen Befehl auf eine Maschine zu kopieren, die zwei Sprünge entfernt ist?
Akzeptierte Antwort:
Sie können jedes ssh
übergeben Option zu ssh-copy-id
mit dem -o
Möglichkeit. Durch die Verwendung des ProxyJump
Option können Sie ssh-copy-id
verwenden um Ihren Schlüssel per Jump-Host auf einen Host zu kopieren.
Hier ist ein Beispiel, wo ich meinen SSH-Schlüssel über den Jump-Host jump.spack.org nach leia.spack.org kopiere:
$ ssh-copy-id -o ProxyJump=jump.spack.org leia.spack.org
[email protected]'s password:
Number of key(s) added: 1
Und dann testen Sie es mit:
$ ssh -J jump.spack.org leia.spack.org
Welcome to Ubuntu 20.04 LTS (GNU/Linux 5.4.0-42-generic x86_64)