Como ssh para um servidor usando outro servidor? [duplicado]

29

Para conectar ao servidor B eu tenho que primeiro o ssh para o servidor A . Qual é a linha de comando para acessar o servidor B ?

    
por Omid 24.06.2012 / 09:07

2 respostas

45

Se o servidor B estiver acessível via ssh e você precisar apenas de ssh (não é direto de scp ou sftp ), isso também funciona muito bem:

ssh -t $SERVER_A ssh $SERVER_B

A opção -t força a alocação de uma pseudo-tty mesmo ao executar um único comando na outra extremidade. Isso é útil, pois ssh precisa de uma pseudo-tty.

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

    
por 24.06.2012 / 10:41
18

Não há uma maneira interna em ssh de fazer isso, além de usar o encaminhamento de porta.

No entanto, existe uma maneira que funciona razoavelmente bem - a configuração ProxyCommand para ssh. Você pode especificar isso por host em ~/.ssh/config e 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 página de manual ssh(1) dos detalhes e nc(1) do pacote netcat do comando que estou usando para encaminhar a conexão. (Você pode usar qualquer coisa que faça uma conexão TCP e passe a entrada e saída padrão através dela.)

    
por 24.06.2012 / 09:10

Tags