Executando o rdesktop através de um túnel SSH em um comando

4

Estou executando ssh server -L 3392:192.168.1.138:3389 em uma janela de terminal e, em seguida, executando rdesktop 127.0.0.1:3392 em outra para conectar a uma máquina Windows por meio de um túnel SSH. Como posso mesclar isso em um comando que posso executar a partir de um atalho do Gnome ou algo assim?

    
por Matt Alexander 23.11.2012 / 23:19

3 respostas

2

Suponho que você tenha uma chave SSH sem senha configurada para que o ssh não solicite uma senha.

Você pode usar um script bash como este:

#!/bin/bash
ssh server -L 3392:192.168.1.138:3389 -N &
SSH_PID=$!
sleep 5 # wait for the connection to establish
rdesktop 127.0.0.1:3392
kill $SSH_PID

Estou assumindo aqui que o rdesktop não bifurca e retorna até que o programa termine. Em caso afirmativo, a conexão SSH morrerá imediatamente. Se isso for verdade, você precisará observar a execução de processos rdesktop, loop / sleep até que estejam todos mortos e, em seguida, feche a conexão SSH.

    
por 24.11.2012 / 00:26
2

Como uma melhoria para o acima, você não precisa matar o SSH PID no final.

ssh server -fL 3392:192.168.1.138:3389 sleep 5  
rdesktop 127.0.0.1:3392

O código acima diz ao ssh para executar um sleep 5 no servidor de remoção e ir para o segundo plano (-f). Isso fará com que a conexão permaneça aberta por 5 segundos, o que é tempo suficiente para o comando rdesktop ser executado. O encaminhamento de porta permanecerá no lugar enquanto houver tráfego, e assim que você sair do rdesktop, o ssh deverá morrer automaticamente.

    
por 20.05.2014 / 16:29
0

Meu "man ssh" diz:

ssh [a bunch of options] [user@]hostname [command]

Você poderia apenas usar o comando, mas parece estar usando algo diferente porque sua sintaxe não combina com a minha. De qualquer forma, verifique na manpage que deve haver algo para iniciar um comando.

    
por 24.11.2012 / 00:41