¿Es posible especificar claves reenviadas utilizando la directiva IdentityFile en .ssh / config?
Me encontré con esta peculiaridad cuando intentaba implementar algún código a través de Capistrano / GIT en nuestro servidor de producción. Tanto mi clave GIT personal como la de mi trabajo siempre se cargan en mi agente SSH y sucedió que mi clave personal se agregó primero al agente. Utilizo el reenvío de agentes al implementar con Capistrano, por lo que cuando el host intentó autenticar la operación `git pull` falló con el siguiente error:
ERROR: Permiso a `algún repositorio` denegado a` su usuario`.
porque intentó autenticarse usando mi clave git personal antes de probar la clave apropiada (que vino más tarde en el agente ssh) y asumió que estaba accediendo a un repositorio extranjero al que no tengo permiso de acceso. Potencialmente, puedo dar acceso a mi usuario personal a cada repositorio de trabajo, pero en mi máquina local puedo solucionar este problema definiendo dominios personalizados en .ssh / config de la siguiente manera:
Host personal.github.com Nombre de
host github.com
Usuario git
IdentityFile ~ / .ssh / some_key
Host work.github.com Nombre de
host github.com
Usuario git
IdentityFile ~ / .ssh / some_other_key
y de esta manera git nunca se confunde. ¿Es posible crear reglas .ssh / config para las claves reenviadas en mis cuadros de producción para que siempre sepan qué clave usar al extraer un código nuevo? Básicamente quiero poder hacer:
Host work.github.com Nombre de
host github.com
Usuario git
IdentityFile some_forwards_key
¡Gracias!
fuente
ssh -v -T ...
el servidor acepta la clave pública, pero luego ssh diceNo such identity: /home/name/.ssh/id_rsa: No such file or directory
y posteriormente la autenticación falla. Tengo ForwardAgent habilitado en todas mis configuraciones. ¿Cual podría ser el problema?