Eu tenho três sistemas, um cliente que instala apenas o cliente ssh e server_1 e server_2. estou usando autenticação pública ssh e posso ssh do cliente para server_1 e server_2. salvei a mesma chave pública para o servidor 1 e agora quero fazer ssh do servidor 1 para o servidor 2 usando encaminhamento de agente e quero que minha chave privada fique apenas no cliente, por favor me ajude o mais rápido possível, como posso fazer esse cenário? eu uso esse link mas não sei como fazer.
Responder1
Primeiro você tem que invocar ssh-agent
seu cliente para que ele lembre sua chave
ssh-agent -t 3600 ~/.ssh/private_key_rsa
(supondo que sua chave esteja armazenada em ~/.ssh/private_key_rsa
, você também pode omitir -t 3600
se quiser uma vida útil infinita)
então você simplesmente faz ssh em um de seus servidores usando a -A
opção
ssh -A server1
a partir daí você poderá fazer ssh no server2
ssh server2
Se você não quiser especificar a -A
opção sempre, poderá adicionar o seguinte ao seu ~/.ssh/config
(no cliente e opcionalmente em ambos os servidores)
Host server1
ForwardAgent yes
Host server2
ForwardAgent yes
Isso funciona para qualquer número de servidores. Para manter o ~/.ssh/config
resumo, você pode introduzir curingas, por exemplo
Host server?
ForwardAgent yes
Responder2
Encaminhe o host do servidor para localhost:
ssh -L localhost:22:localhost:22 user@host
ou
ssh -N -f -L serverhost:22:localhost:22 user@server1
Depois de ler sua pergunta novamente.
Você deseja fazer ssh em server1 :
ssh user@server1
Então você deseja fazer ssh no server2:
No novo terminal do cliente, faça:
ssh user@server1
ssh user@server2
Então você tem 2 conexões:
- cliente para servidor 1
- cliente para servidor 1 ==> servidor 2
Se você quiser ter:
- cliente para servidor 1
- cliente para servidor 2 (com a mesma chave).
Basta seguir o comando.
No cliente:
Use tmux ou abra 2 terminais
ssh user@server1
No novo terminal:
ssh user@server2
Responder3
A resposta simples é adicionar um sinalizador -A
como este:
ssh -A [user]@[hostname]