SSH via 3ª máquina

7
Local Computer (Fedora)  --SSH-->  Server1  --SSH-->  Server2

Em alguns ambientes em que trabalho, temos que usar "caixas de salto", onde você ssh para um servidor, a fim de chegar a outro servidor. Existe uma maneira rápida de fazer isso, talvez editando ~ / .ssh / config, de modo que, sempre que eu ssh para Server2 do meu computador local, ele crie automaticamente a conexão necessária para o Server1? Eu posso configurar chaves para que eu não seja solicitada uma senha para o Server1, se necessário.

    
por SeanFromIT 02.12.2011 / 19:36

3 respostas

6

Este tipo de funcionalidade foi adicionado ao OpenSSH versão 5.4 e pode ser usado fazendo

ssh -W server2 server1

Em que server2 é o destino pretendido e server1 é o seu anfitrião proxy. Você pode tornar isso mais fácil usando a opção ProxyCommand em sua configuração ssh, algo como:

host = *.example.com
user = packs
port = 22
ProxyCommand ssh -W %h:%p server1

Eu também vi isso feito usando netcat, então com os mesmos exemplos acima

ssh server1 nc -q0 server2 22

Da mesma forma, isso também pode ser usado em sua configuração ssh, exceto substituir o ProxyCommand como

ProxyCommand ssh server1 nc -q0 %h %p
    
por 02.12.2011 / 21:00
7

Você pode usar um comando como:

$ ssh -t user@server1 ssh user@server2

Este comando envia-o ao servidor2 via server1. Você será solicitado por duas senhas consecutivas para fazer o login no server1 e depois no server2. Se você configurar as chaves SSH necessárias, você deverá efetuar login automaticamente no servidor2.

Isso é muito útil quando você não pode fazer login diretamente no servidor2.

    
por 02.12.2011 / 20:32
2

Eu uso portas encaminhadas:

# ~/.ssh/config

# The jumping-off point

Host server1
  Hostname blah.sample.com
  LocalForward 10002 server2:22
  LocalForward 10003 server3:22

# Servers behind the jumping-off point, reached by connecting
# to the forwarded ports above

Host server2
  HostKeyAlias server2
  Hostname localhost
  Port 10002

Host server3
  HostKeyAlias server3
  Hostname localhost
  Port 10003

Isso tem várias vantagens sobre ssh -t user@server1 ssh user@server2 :

  • Múltiplas sessões podem ser estabelecidas através do mesmo túnel.
  • Você só precisa autenticar cada conexão uma vez em vez de duas vezes.
  • Uso transparente de ssh , scp e sftp (por exemplo, você pode usar scp thisfile server2:~/thatfile sem precisar fazer nenhuma ginástica adicional).
  • X e trabalho de encaminhamento de porta sem precisar pensar sobre isso.
por 02.12.2011 / 23:38