Minha pergunta é basicamente como transformar meus dois passos existentes em um passo.
Eu tenho um túnel SSH em funcionamento configurado entre dois computadores usando um servidor intermediário como este:
Kubuntu_laptop--->nat_fw--->Debian_Server<--nat_fw<--Kubuntu_desktop
O que eu faço atualmente é o SSH do Kubuntu_laptop para o Debian_Server e depois do Debian_Server para o Kubuntu_desktop. Eu gostaria de fazer esse comando SSH, emitido no meu Kubuntu_laptop no bash, que resulta em minha conexão com o Kubuntu_desktop (shell / bash).
Os comandos que estou usando agora são os seguintes. Passo 1:
me@kubuntu_laptop:~$ ssh -i ~/.ssh/id_rsa admin@debian_server
Passo 2:
admin@debian_server:$ ssh -p 1234 -i /home/admin/.ssh/id_rsa admin@localhost
Então eu estou conectado ao kubuntu_desktop via SSH (do kubuntu_laptop).
Chaves RSA são necessárias para todas as conexões SSH. O login com senha está desativado o tempo todo. E observe que as contas de usuário do computador são diferentes em dois dos computadores.
Em relação à conexão para esta perna:
Debian_Server<--nat_fw<--Kubuntu_desktop
Aqui está como é estabelecido:
autossh -M 5234 -N -f -R 1234:localhost:22 user@mydebian.com -p 22
Observe que o Kubuntu_desktop se conecta ao intermediário como [email protected] (não admin @ debian_server). Mas quando eu me conecto ao Kubuntu_desktop, eu me conecto como usuário administrador.
Não consigo alterar a porta de monitoramento existente (5234) ou o número da porta remota (- R) (1234 neste exemplo). Não consigo alterar a segurança SSH para permitir logins de senha. Não consigo abrir nenhuma nova porta de firewall. Não consigo alterar as contas de usuário (exceto no laptop).
Respostas:
Verifique se o netcat está instalado no servidor Debian e use
ProxyCommand
na sua configuração SSH local (~/.ssh/config
).fonte
Graças a @Ignacio Vazquez-Abrams, aqui estão todas as etapas:
Eu editei a configuração da seguinte maneira:
O conteúdo é:
Em seguida, basta conectar:
Conectado ao kubuntu_desktop via SSH em uma etapa! Perfeito
Atualizar:
Isso torna mais flexível:
Os novos conteúdos são:
Em seguida, basta conectar-se à mamãe:
E conecte-se ao papai:
Obviamente, mamãe e papai precisam ter o Passo 0 configurado (da minha pergunta original), onde cada um tem sua própria porta -R definida. Exemplo para o pai:
Etapa 0 (para o pai):
Opcional:
fonte
ProxyCommand ssh debian_server_fqdn -W localhost:%p
portanto, não é necessário ter o netcat no servidor Debian.