Como fazer ssh para um servidor usando outro servidor?

Como fazer ssh para um servidor usando outro servidor?

Possível duplicata:
ssh através de vários hosts

Para conectar-se aservidor BEu tenho que primeiro ssh paraservidor A. Qual é a linha de comando para acessarservidor B?

Responder1

Se o servidor B estiver acessível sshe você só precisar ssh(não direto scpou sftp), isso também funciona muito bem:

ssh -t $SERVER_A ssh $SERVER_B

A -topção força a alocação de um pseudo-tty mesmo ao executar um único comando na outra extremidade. Isso é útil, pois sshprecisa de um pseudo-tty.

Como você está usando duas instâncias aninhadas de ssh, o caractere de escape na sessão interna é Enter ~ ~(dois tils). Um til enviará o escape para o primeiro shell.

Responder2

Não existe uma maneira integrada de sshfazer isso, a não ser usar o encaminhamento de porta.

No entanto, existe uma maneira que funciona razoavelmente bem - a ProxyCommandconfiguração do ssh. Você pode especificar isso por host ~/.ssh/confige usá-lo para especificar o comando a ser executado para conectar-se à porta ssh remota.

Eu uso isso em vários hosts:

host serverB.example.com serverB
  ProxyCommand /usr/bin/ssh serverA.example.com /usr/bin/nc %h %p

Consulte a ssh(1)página de manual para obter detalhes e nc(1)no netcatpacote o comando que estou usando para encaminhar a conexão. (No entanto, você pode usar qualquer coisa que faça uma conexão TCP e passe entrada e saída padrão por meio dela.)

informação relacionada