ssh-agent: no reenvíe la autenticación para todo el conjunto de claves

10

Tengo dos claves ssh privadas:

  • uno para acceder a mis máquinas personales ,
  • uno para acceder a los servidores en mi trabajo .

Agrego esas dos claves a mi ssh-agent con ssh-add.

Ahora, cuando lo haga, ssh -A root@jobsrvme gustaría reenviar la autenticación del agente solo para mi clave de trabajo (la que estoy usando para conectarme jobsrv).

Quiero esto porque cualquiera que tenga acceso de root jobsrvpuede usar mi agente para autenticarse en mis máquinas personales.

¿Hay alguna manera de lograr este aislamiento?

Totor
fuente
¿verificaste la opción -i en la página man de ssh?
Un ser humano
1
@Stillakid sí, ssh -A -i myjobkey_rsa root@jobsrvtodavía permite que la máquina jobsrv acceda a mi agente de máquina local y se autentique en mi servidor personal con la otra clave (personal) ...
Totor
también comprobado ssh-keysign?
Un ser humano

Respuestas:

2

Para forzar el ssh(1)uso de una clave en particular, incluso si ssh-agent(1)ofrece varias, use la directiva IdentityFiley IdentitiesOnlyen ~/.ssh/config, por ejemplo:

Host example.com
    IdentityFile ~/.ssh/keys/special.pem
    IdentitiesOnly yes

Ver ssh_config(5)para más detalles.

mjhennig
fuente
Esto no funciona . IdentitiesOnlyse aplica cuando intenta conectarse al servidor remoto. Una vez que esté conectado, si el -Areenvío de agente está habilitado, se reenvía todo el conjunto de claves.
Totor
El llavero no se reenvía. Es la solicitud de autenticación que se reenvía en .
bahamat
@bahamat Claro, mi error. Aún así, esta solución no funciona.
Totor
2

Desafortunadamente, creo que no es posible lograr esto fácilmente en este momento . Se podrían usar dos agentes (uno para cada clave) para que no haya ningún agente que tenga todas las claves. Pero sería bastante engorroso trabajar con él.

Es por eso que se ha abierto un informe de error (mejora). Existe este informe similar también.

Totor
fuente