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)