se puede agregar ssh-add globalmente

¿Puedo hacer ssh-add contra el file de identificación que permanezca para siempre, actualmente prevalece solo para la session ssh activa actual (es decir, el file de identidad agregado usando ssh-add se pierde cuando se realiza una nueva session de ssh con el server ejecutando ssh- agregar -L)

El problema es que nuestro server amazon tiene varios proyectos con repo descansando en github.

Ahora cada uno de los repos tiene derecho de acceso basado en que los usuarios dicen que el usuario A tiene acceso solo para el proyecto A y B tiene un derecho de acceso solo en el proyecto B.

Con ese derecho de acceso configurado (en github) ahora cada usuario puede realizar operaciones de git (como git fetch, git push, etc.) solo para su respectivo proyecto (que es lo que queremos)

Ahora todo lo que quiero es que cuando un usuario realice una operación de git en su proyecto respectivo, yo quiera que ssh-agent tome todas las keys ssh en las counts y busque la que coincida con los usuarios específicos.

Nota

que cada ssh-key tenga una frase (un secreto único que conozca cada uno de los usuarios) asociado con ella, que se le solicitará que ingrese cuando realice la function git.

para lograr esto lo hacemos

ssh-add /root/.ssh/A 

o

 ssh-add /root/.ssh/B 

Pero como mencionamos antes esto solo se queda para la session ssh activa , salga o realice una nueva session ssh con el server, se pierde la información ssh-add. se puede encontrar ejecutando ssh-add -L

También he intentado definir IdentityFile en .ssh / config como este describe en esta pregunta

algo como esto

 Host github.com Hostname github.com User git IdentityFile /root/.ssh/A Host github.com Hostname github.com User git IdentityFile /root/.ssh/B 

Esto solo funciona para un usuario (algunas veces funciona para 'A' y algunas veces no funciona, lo mismo pasa con 'B')

¿Se puede lograr esta segregación o estoy sonando un poco más ambicioso

Gracias

Estás muy cerca con tu edición de IdentityFile. Sin embargo, debe tener nombres de host únicos listdos en IdentityFile. Como utilizó github.com como nombre de host en ambas ocasiones, cuando intenta conectarse a github.com, no tiene idea de cuál usar.

Tenemos una configuration similar. Tenemos 5 usuarios, todos los cuales inician session en una sola count. Sin embargo, Github necesita verlos usando su propia ssh-key, por lo que tenemos 5 keys. El truco para evitar esto es hacer que tu file se vea así

 Host UserA_github Hostname github.com User git IdentityFile /root/.ssh/A Host UserB_github Hostname github.com User git IdentityFile /root/.ssh/B 

Siempre que el Usuario B quiera hacer algo relacionado con git, (por ejemplo, clonar uno de sus repositorys) se ejecutará …

 git clone UserB_github:UserB/MyRepo 

o algo similar. Esto se comportará como si hubieran ingresado …

 git clone github.com:UserB/MyRepo 

excepto que usará la key IdentityFile / private apropiada.

Entiendo que mi solución no utiliza un ssh-add persistente ssh-add pero creo que esto le dará el mismo performance que desea. Lamentablemente, los usuarios deberán ingresar su frase de contraseña cada vez que realicen una transacción.