Túnel SSH em segundo plano


17

Eu tenho um processo que espera que uma conexão de encapsulamento ssh seja executada corretamente e tenho usado o seguinte comando:

ssh -L localhost:3306:127.0.0.1:3306 username@<mysql-machine-ip-address> -N &

Eu executei isso com sucesso por 8 meses; recentemente, nosso provedor de hospedagem precisou fazer alterações no hardware para atualizar nossa máquina e atualizou nossa máquina com um novo kernel para o Ubuntu. Passou de 4.8.3-x86_64-linode76 para 4.8.6-x86_64-linode78.

Após vários problemas, tivemos que atualizar o comando para isso:

ssh -L localhost:3306:127.0.0.1:3306 username@<mysql-machine-ip-address> -fN

Ao pesquisar a documentação ssh, o parâmetro -f

Solicita que o ssh volte ao segundo plano imediatamente antes da execução do comando. Isso é útil se o ssh solicitar senhas ou frases secretas, mas o usuário desejar em segundo plano. Isso implica -n. A maneira recomendada de iniciar programas X11 em um site remoto é com algo como ssh -f host xterm.

Ao pesquisar o comando bash para "&"

Coloque um processo em segundo plano (consulte multitarefa em "Uso intermediário do> Sistema operacional UNIX").

Existe fundamentalmente alguma diferença nesses 2 comandos?

Respostas:


22

Sim existe. ssh &é executado sshem segundo plano desde o início. ssh -finicia sshem primeiro plano, permitindo solicitar senhas etc., e somente depois se sshcoloca em segundo plano imediatamente antes de executar o comando solicitado.


você tem alguma idéia de por que, com o novo servidor, eu seria forçado a usar o ssh -f em vez do ssh &. Além disso, parece que o ssh -f é uma abordagem melhor, você concorda com isso?
usar o seguinte código

Talvez o novo sistema tenha um cliente ssh mais novo (ou apenas diferente)?
AlexP # 8/16
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.