Estive procurando uma solução para o seguinte problema nas últimas 2 horas, sem sorte.
Desenvolvimento:
Estou usando a autenticação de chave pública para conectar-me aos meus servidores. Eu uso o encaminhamento ssh-agent para não precisar gerenciar chaves públicas / privadas.
Digamos que eu tenho servidores A, B and C
.
Isso funciona muito bem se eu me conectar LOCAL ---> A ---> B
.
Também funciona muito bem se eu fizer LOCAL ---> A ---> C
.
Agora, se eu tentar LOCAL ---> A ---> B ---> C
, o SSH não poderá se conectar B to C
.
Vale a pena notar: eu me conecto ao servidor A como liquidez, enquanto eu me conecto ao servidor B como raiz. Conectar-se ao servidor B como liquidez corrige o problema, mas essa não é uma opção para mim.
Conforme a recomendação de um usuário, eu uso ssh -A
cada vez para garantir que o encaminhamento do agente esteja ativado.
Encontrei uma pergunta semelhante, sem resposta aqui: É possível encadear o encaminhamento de ssh-agent através de vários saltos?
De acordo com o @Zoredache aqui: /server//a/561576/45671 Eu só preciso ajustar a configuração do meu cliente em cada sistema intermediário. O que eu acredito que sim.
ProxyCommand
salto (como explicado aqui ) em vez de encaminhar o agente SSH. Para sua abordagem, você terá que confiar em todas as máquinas da cadeia, pois elas podem (ab) usar suas chaves privadas. Eu também gosto muito da abordagem ProxyCommand muito melhor, porque a verificação de hosts conhecidos é feita localmente e, além disso, você pode configurar a cadeia na sua configuração SSH para poder usar um único comando para se conectar ao C.Respostas:
Para que o encaminhamento do agente funcione através de vários saltos, basta ajustar a configuração do cliente em cada sistema intermediário para que o encaminhamento do agente.
Pode ser tão simples quanto garantir que você
/etc/ssh/ssh_config
tenha isso configurado. Mas se você tiver configurações por cliente,~/.ssh/config
poderá ser necessário ajustar essas configurações também.Você pode ver se o encaminhamento do agente ocorreu ou se houve um erro, se você acabou de adicionar a
-v
opção.Verifique também se você tem um conjunto de variáveis de ambiente válido.
fonte
ssh-add -l
para listar as chaves que o ssh pensa que pode obter através do seu agente. Certifique-se de encaminhar em cada conexão!Requesting authentication agent forwarding.
na sua saída de depuração. Se você tentou.bash_profile
iniciar o ssh-agent, remova-o de lá ou o seu agente será iniciado novamente sem nenhuma identidade.