A resposta curta é que você precisa
-
ProxyCommandusandoncpara se conectar por meio de -
ForwardAgentpara passar as chaves - garanta que sua chave pública seja parte de
.ssh/authorized_keysem todos os servidores
Host relay Hostname relay.server.fqdn.or.IP User me IdentityFile ~/.ssh/id_rsa ForwardAgent yes Host destination Hostname destination.server.fqdn.or.IP User me IdentityFile ~/.ssh/id_rsa ProxyCommand ssh -q relay "nc %h %p" ForwardAgent yes
A parte mais longa.
A opção ProxyCommand em ssh config executa um comando sempre que for usado o Host de fechamento. É normalmente usado com nc disponível no nmap.org, também conhecido como ncat e tem muitas opções.
Na entrada acima Host destination da configuração ssh, ProxyCommand foi definido como ssh -q relay "nc %h %p" , que diz ssh para retransmitir silenciosamente e executar nc destination.server.fqdn.or.IP 22 .
nc faz a conexão entre o ssh de entrada e o destino.
O ForwardAgent yes diz ao ssh para adicionar a chave a um ssh-agent. Os agentes ssh rastreiam as chaves e são usados para passar automaticamente o caminho certo para um host, conforme necessário. O ForwardAgent yes diz ao agente para passar a chave para outro agente no relé e depois novamente para o destino.
Agora, para que tudo isso funcione, cada servidor pelo qual você passa e, por fim, o destino deve ter a chave pública associada à sua chave privada (id_rsa) em seu arquivo .ssh/authorized_keys . Quando você criou sua chave privada, id_rsa, uma chave pública, id_rsa.pub, também deveria ter sido criada.
Se você não tiver sua chave pública, sempre poderá obtê-la da chave privada por meio de ssh-keygen -y -f ~/.ssh/id_rsa para facilitar a cópia / colagem. Observe que a chave pública tem 2 ou 3 campos separados por espaço, mas é uma linha .
Então, ssh relay , edite ~/.ssh/authorized_keys (que pode não existir, então mkdir -p ~/.ssh pode ser necessário) e cole a chave pública em uma nova linha (ou a primeira, se não presente).
Enquanto estiver no servidor de retransmissão, verifique se nc existe em / bin ou / usr / bin. Se isso não acontecer, você precisará instalá-lo usando o gerenciador de pacotes, o yum ou o apt-get.
Do servidor de retransmissão, ssh destination e faça a mesma atualização de ~/.ssh/authorized_keys .
exit até a sua máquina local, e você deve ser capaz de ssh destination