É possível especificar chaves encaminhadas usando a diretiva IdentityFile em .ssh / config?
Encontrei essa peculiaridade ao tentar implantar algum código via Capistrano / GIT em nosso servidor de produção. As minhas chaves GIT, pessoal e do meu trabalho, são sempre carregadas no meu agente SSH e, por acaso, minha chave pessoal foi adicionada ao agente primeiro. Eu uso o encaminhamento de agente ao implantar com o Capistrano, portanto, quando o host tentou autenticar a operação `git pull`, falhou com o seguinte erro:
ERRO: Permissão para `algum repo` negada ao` seu usuário`.
porque ele tentou se autenticar usando minha chave pessoal git antes de tentar a chave apropriada (que veio mais tarde no agente ssh) e assumiu que eu estava acessando um repositório externo que não tenho permissão para acessar. Possivelmente, posso apenas dar ao meu usuário pessoal acesso a todos os repositórios de trabalho, mas na minha máquina local, posso solucionar esse problema definindo domínios personalizados em .ssh / config da seguinte maneira:
Host personal.github.com
Nome do host github.com
Usuário git
IdentityFile ~ / .ssh / some_key
Host work.github.com
Nome do host github.com
Usuário git
IdentityFile ~ / .ssh / some_other_key
e assim o git nunca fica confuso. É possível criar regras .ssh / config para chaves encaminhadas em minhas caixas de produção para que eles sempre saibam qual chave usar ao extrair um novo código? Basicamente, eu quero ser capaz de fazer:
Host work.github.com
Nome do host github.com
Usuário git
IdentityFile some_forwarded_key
Obrigado!
fonte
ssh -v -T ...
o servidor aceita a chave pública, mas o ssh dizNo such identity: /home/name/.ssh/id_rsa: No such file or directory
e, posteriormente, a autenticação falha. Eu tenho o ForwardAgent ativado em todas as minhas configurações. Qual poderia ser o problema?