A resposta curta é que você precisa
-
ProxyCommand
usandonc
para se conectar por meio de -
ForwardAgent
para passar as chaves - garanta que sua chave pública seja parte de
.ssh/authorized_keys
em 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