É um problema comum que você deseja obter para um servidor que não seja diretamente acessível a partir da Internet externa, mas é acessível a partir de um host intermediário exposto publicamente. (O host intermediário é chamado de jumpbox .)
Como esse problema é tão comum, é natural que o OpenSSH forneça métodos convenientes que simplifiquem o trabalho com jumpboxes (ou jumpboxen?). Existem dois caminhos, um caminho antigo e um novo caminho. O modo antigo ainda funciona, mas a nova maneira é mais intuitiva e faz menos suposições sobre quais aplicativos estão disponíveis no Jumpbox.
Usando as máquinas de exemplo mencionadas na pergunta, isso pode ser feito da seguinte forma:
ssh -o StrictHostKeyChecking=no -o [email protected] myuser@t002
Ou, em vez de -o [email protected]
, acho que -W [email protected]
é equivalente.
De qualquer forma, esse método requer uma versão nova o suficiente do OpenSSH. Se você ficar preso a uma versão antiga, precisará fazer algo assim:
ssh -o StrictHostKeyChecking=no -o ProxyCommand='ssh [email protected] "nc %h %p"' myuser@t002
A maneira antiga pressupõe que você tenha o netcat instalado no Jumpbox.
Outro benefício da nova maneira é que você não precisa manter uma chave privada na caixa de entrada. ProxyJump é inteligente o suficiente para tentar usar a chave privada que você tem localmente. Então, se o salto estiver comprometido, não será necessário comprometer nada por trás do salto.
Agora, você pode ficar cansado de escrever esse grande comando todas as vezes. Quanto mais você usar o ssh, mais incentivo terá para configurar um $HOME/.ssh/config
. Esse é um arquivo no qual você pode fornecer aliases a hosts remotos e associar configurações específicas a esses hosts.
Para o seu exemplo, um ssh_config seria configurado da seguinte forma:
Host jumpbox
User myuser
Hostname test.ac.uk
StrictHostKeyChecking=no
Host t002
User myuser
StrictHostKeyChecking=no
ProxyJump jumpbox
Com essa configuração no lugar, você deve ser capaz de logar em t002 usando um comando muito mais simples:
ssh t002
Há muitas outras coisas legais que você pode fazer com um ssh_config. Dê uma olhada em man ssh_config
e visite-a de vez em quando enquanto aprende mais sobre o ssh. Você vai continuar encontrando mais coisas legais que você pode fazer:)
Um passo a passo introdutório de exemplo para configurar uma configuração ssh é link