Pregunta:
Me gustaría copiar una clave ssh pública del archivo ~/.ssh/id_rsa.pub
en mi máquina local al archivo ~/.ssh/authorized_keys
en un host remoto que está a dos saltos ssh de distancia. En otras palabras, localhost
solo tiene acceso ssh a host1
, pero host1
tiene acceso ssh a host2
. Quiero copiar mi clave ssh pública de localhost
a host2
.
Para copiar una clave ssh a un host remoto a un salto de distancia, la documentación de ssh proporciona el comando:
ssh-copy-id -i ~/.ssh/mykey user@host
¿Hay alguna forma de copiar la clave a una máquina que está a dos saltos de distancia en un solo comando?
Respuesta:
Puede pasar cualquier opción ssh
a ssh-copy-id
con la opción -o
. Al usar la opción ProxyJump
, puede usar ssh-copy-id
para copiar su clave a un host a través de Jump Host.
Aquí hay un ejemplo en el que copio mi clave ssh a leia.spack.org a través del servidor de salto jump.spack.org:
$ ssh-copy-id -o ProxyJump=jump.spack.org leia.spack.org
adam@leia.spack.org's password:
Number of key(s) added: 1
Y luego pruébelo con:
$ ssh -J jump.spack.org leia.spack.org
Welcome to Ubuntu 20.04 LTS (GNU/Linux 5.4.0-42-generic x86_64)