Como respondeu em outro lugar , o truque é adicionar a opção IdentitiesOnly yes , que garante que somente as chaves configuradas serão usadas mesmo que outras estejam disponíveis no agente.
Digamos que há duas chaves A e B , ambas válidas para user@host autenticação de chave pública. Como authorized_keys está configurado para comportamento diferente dependendo da chave, ~/.ssh/config no cliente usa algo como
Host A.host
HostName host
User user
IdentityFile ~/.ssh/A
Host B.host
HostName host
User user
IdentityFile ~/.ssh/B
Isso funciona bem. No entanto, no momento em que usar ssh-agent e adicionar as chaves A e B (por exemplo, para inserir suas senhas no login em vez de chamar as respectivas ssh A.host ou ssh B.host ), a conexão será sempre use o mesmo id para ambos os hosts virtuais. Existe alguma maneira de especificar qual chave armazenada ssh deve usar a partir de ssh-agent sem ter que remover a outra chave?
Como respondeu em outro lugar , o truque é adicionar a opção IdentitiesOnly yes , que garante que somente as chaves configuradas serão usadas mesmo que outras estejam disponíveis no agente.