Script para estabelecer o túnel SSH e, em seguida, executar outro programa que use o túnel

3

Estou executando um aplicativo GUI (Gnucash) que se conecta a um banco de dados remoto do Postgres por meio de uma sessão de shell segura. Eu posso usar o comando SSH -L para encapsular uma porta local e, em seguida, executar separadamente o Gnucash e isso funciona bem.

O que eu gostaria de fazer é usar um script de shell único que configura o túnel e depois chama o Gnucash. Isso é possível? Se sim, como faço isso? Atualmente, executo comandos como o seguinte em duas janelas de terminal separadas:

ssh -L 5433: 127.0.0.1: 19097 [email protected] gnucash postgres: // gnucash @ localhost: 5433 / gnucash_db

Se eu simplesmente colocar as duas linhas em um shell script, a primeira linha me coloca no shell remoto e a segunda linha não é executada até que eu saia do shell remoto.

TIA, Rob Hills

    
por Rob Hills 29.08.2012 / 23:23

1 resposta

0

Use ssh -fNT -L 5433:127.0.0.1:19097 [email protected] para solicitar ao ssh automaticamente o segundo plano depois de estabelecer o encapsulamento e, em seguida, o seu script pode ser movido no próximo comando. Sugiro que você termine o script com um exit , que fechará o terminal e eliminará o processo ssh ; caso contrário, você deve explicitamente eliminá-lo ou sairá se / quando o servidor expirar.

    
por ish 30.08.2012 / 12:57