Eu tenho que montar um túnel entre dois hosts.
Para isso eu uso ssh
desta maneira:
ssh -L MY_LOCAL_PORT:FOREIGN_ADDRESS:FOREIGN_PORT MYUSER@SSH_SERVER
depois disso, faço login no meu SSH_SERVER.
Como posso evitar esse recurso ?! Eu só tenho que montar um túnel. Não preciso fazer login no meu SSH_SERVER ...
Eu tentei a opção -N, mas manteve meu shell ocupado.
ssh
ssh-tunneling
Bau Miao
fonte
fonte
man ssh
mostra como:ssh -f -L 1234:localhost:6667 server.example.com sleep 10 && irc -c '#users' -p 1234 pinky 127.0.0.1
A opção -f backgrounds ssh e o comando remoto `` sleep 10 '' são especificados para permitir uma quantidade de tempo (10 segundos, no exemplo) para iniciar o serviço a ser tunelizado. Se nenhuma conexão for feita dentro do tempo especificado, o ssh será encerrado. ``Respostas:
Como dito em outras postagens, se você não deseja um prompt no host remoto, deve usar a
-N
opção SSH. Mas isso apenas mantém o SSH em execução sem aviso, e o shell está ocupado.Você só precisa colocar o SSH'ing como uma tarefa em segundo plano com o
&
sinal:Isso iniciará o encapsulamento ssh em segundo plano. Mas algumas mensagens podem aparecer, especialmente quando você tenta se conectar a uma porta que não está escutando (se o servidor apache não for iniciado). Para evitar que essas mensagens apareçam no seu shell enquanto faz outras coisas, você pode redirecionar STDOUT / STDERR para o grande vazio:
Divirta-se com o SSH.
fonte
-f
vez de&
e o redirecionamento io.-f -N
é o que você está procurando:fonte
ps
ekill
elessh -N -f -M -S /tmp/file-sock -L port:server:port_to user@...
para que você possa matar a conexão mais tarde comssh -S /tmp/file -o exit user@....
(ou kill). Dessa forma, não há necessidade de ps. Você pode dizer para criar automaticamente esse arquivo em ~ / .ssh / config.ssh -S /tmp/file-sock -O exit
, não-o
en.wikibooks.org/wiki/OpenSSH/Cookbook/...