Contexto
Estou executando o Ubuntu Desktop como minha máquina principal, que chamarei de D. Quero conectar ao servidor S via ssh, mas o firewall está me bloqueando.
Eu tenho acesso ao servidor S, através de um caminho muito complicado, envolvendo uma máquina virtual Windows e PuTTY . Isso torna o trabalho com este servidor extremamente irritante: ambiente completamente diferente, copiar / colar não funciona, não posso usar corretamente minha área de trabalho enquanto estiver conectada a ela (o Alt-Tab é quebrado pela máquina virtual) etc.
Eu verifiquei que eu posso ssh do servidor S para minha máquina D (o oposto do que eu preciso).
Eu poderia, de alguma forma, iniciar o "encaminhamento de porta" ou similar no servidor, para que eu possa ssh para o servidor na minha área de trabalho?
fonte
D->S
abusando #S->D
Respostas:
Você pode usar o seguinte comando para configurar um túnel SSH do servidor remoto para sua máquina local:
Quando o túnel é configurado, você pode simplesmente ssh no servidor remoto usando o seguinte comando:
Observe que você precisa configurar as teclas ssh para o login automático (sem solicitação de senha). Se você deseja criar o túnel SSH interativamente, é possível remover as opções
-f -N
. Para mais informaçõesman ssh
,.fonte
Se você estiver executando uma versão mais recente do OpenSSH (7.3+), poderá usar o
ProxyJump
que combina tudo magicamente:Que na sua
~/.ssh/config
aparência é:ProxyJump
suporta a sintaxe SSH completa; portanto, se você estiverjim
ativadowindows_server
e usar a porta2222
para ssh.remote_server
está no IP a192.168.0.110
partir dowindows_server
então você pode escrever:E ainda apenas corra
ssh remote_server
para chegar lá.Se você estiver executando uma versão mais antiga do SSH, use ProxyCommand - isso permitirá que o SSH execute primeiro um comando para estabelecer uma conexão proxy, antes de executar o comando SSH real.
Isso usa a opção SSH -W , que é uma abreviação para a sintaxe mais arcana do netcat .
Observe que, como quando você executa,
ssh remote_server
agorawindows_machine
você precisa garantir o uso do IP daremove_server
caixa de salto em vez do IP da sua máquina - eles podem muito bem ser os mesmos.Você pode adicionar esta diretiva ao seu
~/.ssh/config
arquivo:Isso significa que, se
remote_server
for uma máquina diferente, como pode ser visto a partir dewindows_machine
então, você pode colocá-la na configuração e ainda usarssh remote_server
.fonte
Em vez de tentar contornar as coisas e criar um caminho complicado, você não pode simplesmente solicitar que o SSH da área de trabalho para o servidor seja permitido? Se você precisa e deve acessar o servidor, não vejo por que você recusaria o pedido.
fonte