Como encadear o ssh e ficar pronto

1

Eu quero criar um script que, quando clico duas vezes em execuções:

  1. 'ssh -Y server1'
  2. DENTRO do servidor1 execute 'ssh -Y server2' (servidor2 não acessível fora)
  3. Agora tenho o terminal conectado ao servidor2 esperando para executar comandos
por Molten Ice 01.02.2014 / 08:47

2 respostas

2

Você pode usar a opção -W do SSH para conseguir isso. Do manual:

-W host :port
Requests that standard input and output on the client be forwarded to host on port over the secure channel. Implies -N, -T, ExitOnForward-Failure and ClearAllForwardings. Works with Protocol version 2 only.

Você pode configurar isso em ~/.ssh/config para simplificar o processo, da seguinte forma:

Host Server1
  Hostname 200.200.200.1
  Port 2222
  User you
  IdentityFile ~/.ssh/id_rsa

Host Server2
  Hostname 192.168.1.2
  Port 3333
  User you
  IdentityFile ~/.ssh/id_dsa

# Hop to 2
Host Server2
  ProxyCommand ssh -W %h:%p Server1

Você então simplesmente ssh Server2 e - desde que tenha configurado sua autenticação corretamente - você estará logado no Servidor2.

    
por 01.02.2014 / 09:11
1

Além do que o Jason disse, outra solução menos elegante onde você não precisa alterar a configuração e pode inserir outros parâmetros ssh como -t e -Y:

ssh -tY user@server1 "ssh -tY user@server2; bash -s"
    
por 01.02.2014 / 17:41