authentication - keygen - SSH Jump Host SIN reenvío de agente
ssh public key authentication linux (1)
Aunque es una pregunta simple, he buscado días sin éxito.
M = My machine
J = Jump Host
S = Server
Jump Host has my public key on authorized_keys.
Server has J''s public key on authorized_keys.
Allowed connections (due to key authentication):
M -> J
J -> S
¿Cómo es posible que me meta en S desde mi máquina?
Mi configuración actual es:
host jump
user root
HostName x.x.x.x
host server
user root
HostName x.x.x.x
port 22
ForwardAgent no
ProxyCommand ssh jump -W %h:%p
No funciona, ya que intenta iniciar sesión con la tecla de M.
Aquí está el registro ssh
debug1: Host ''x.x.x.x'' is known and matches the ECDSA host key.
debug1: Found key in /Users/xxxxx/.ssh/known_hosts:1542
...
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/xxxxx/.ssh/id_rsa
debug1: Authentications that can continue: publickey
debug1: Trying private key: /Users/xxxxx/.ssh/id_dsa
debug1: Trying private key: /Users/xxxxx/.ssh/id_ecdsa
debug1: Trying private key: /Users/xxxxx/.ssh/id_ed25519
debug1: No more authentication methods to try.
Permission denied (publickey).
Killed by signal 1.
Sí. Por supuesto, intenta iniciar sesión con la tecla de M. Realmente no estás conectando de J a S.
La primera conexión ssh es de M a J. Esta simplemente configura algún reenvío. La segunda conexión ssh es directamente de M a S usando el reenvío configurado por el primer ssh. - No hay posibilidad de usar la tecla en J.
Puede usar ssh -A jump ssh-add
para agregar la clave de J a su agente. Entonces tu configuración debería funcionar bien.
Otra idea podría ser algo así como ssh -t jump ssh server
. De esta forma, inicie sesión en J y, desde allí, inicie sesión en S, más o menos como esperaba.