Depois de estudar uma resposta existente em outra, relacionada pergunta Eu fiz o seguinte e resolvi meu problema:
- Chaves privada e pública copiadas de machine1 e machine2 para local, com nomes diferentes: /root/.ssh/id_rsa_machine1, /root/.ssh/id_rsa_machine1.pub e /root/.ssh/id_rsa_machine2, /root/.ssh /id_rsa_machine2.pub.
- Chaves ssh geradas no sistema local.
- Adicionado chave pública do sistema local para authorized_keys na máquina3.
- Adicionada chave pública de local para machine1.
- Adicionada chave pública de machine1 para machine2 (machine3 já tinha chave pública de machine2 em authorized_keys).
-
Modificado o arquivo /root/.ssh/config no local, da seguinte forma:
Host machine1 HostName machine1.com User root IdentityFile /root/.ssh/id_rsa_machine1 Port 22 IdentitiesOnly yes Host machine2 HostName machine2.com User root IdentityFile /root/.ssh/id_rsa_machine2 Port 22 ProxyCommand ssh -W %h:%p machine1 IdentitiesOnly yes ForwardAgent yes Host machine3 HostName machine3.com User abc ProxyCommand ssh -W %h:%p machine2 IdentitiesOnly yes ForwardAgent yes
Os arquivos de identidade referenciados precisam existir na máquina local. Eu agora posso ssh diretamente com sudo de local para machine3 sem prompts de senha! : -)
Fiz alterações adicionais para user1 no local para ssh como user1 para machine3 diretamente sem prompts de senha:
- Copie chaves privadas e públicas da máquina1 e da máquina2 para o diretório user1 .ssh na máquina local, com os seguintes nomes: ~ / .ssh / id_rsa_machine1, ~ / .ssh / id_rsa_machine1.pub e ~ / .ssh / id_rsa_machine2, ~ /.ssh/id_rsa_machine2.pub.
- Adicionada chave pública para o usuário1 no sistema local para authorized_keys na máquina3.
Adicionado o seguinte ao arquivo user1 ~ / .ssh / config:
Host machine1
HostName machine1.com
User root
IdentityFile ~/.ssh/id_rsa_machine1
Port 22
IdentitiesOnly yes
Host machine2
HostName machine2.com
User root
IdentityFile ~/.ssh/id_rsa_machine2
Port 22
ProxyCommand ssh -W %h:%p machine1
IdentitiesOnly yes
ForwardAgent yes
Host machine3
HostName machine3.com
User abc
ProxyCommand ssh -W %h:%p machine2
IdentitiesOnly yes
ForwardAgent yes