
Recentemente descobri que com o ~/.ssh/config
, posso salvar muitas teclas digitadas e automatizar longas linhas de comando, especificando vários padrões por host. Agora que percebi o quão poderosa a ferramenta pode ser, estou me perguntando se ela pode se adequar a outro dos meus casos de uso.
Tenho acesso a dois hosts bastion
e wikispy
. Bastion tem IP externo, wikispy
só é visível pelo interno. Isso significa que normalmente, para me conectar wikispy
, preciso bastion
primeiro fazer ssh e depois ligar ssh wikispy
. Obviamente, coisas como encaminhamento de porta serão complicadas dessa forma e isso é algo que eu gostaria de evitar.
Isso leva a uma pergunta: posso de alguma forma fazer ~/.ssh/config
uma entrada que diga "quando o usuário solicitar o host rotulado wikispy
, conectar-se bastion
e ligar ssh wikispy
"? Seria possível trabalhar de forma transparente para que eu pudesse chamar coisas como ssh wikispy -L 9999:localhost:9999
e bastion
encaminhar a porta de uma forma que me permitisse acessá-la de dentro wikispy
?
Responder1
Parece que é aqui que uma combinação de ProxyCommand
e nc
se mostra útil. Aqui está uma solução - adicione o seguinte a ~/.ssh/config
:
Host bastion
HostName EXTERNAL_IP
User d
Host wikispy
HostName INTERNAL_IP
User d
ProxyCommand ssh bastion nc -q0 %h 22
De acordo comEste artigo, você pode obter mais de um único nível de aninhamento dessa maneira.