SSH: túnel sem shell no servidor ssh

44

Eu tenho que configurar 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, eu faço login no meu SSH_SERVER.

Como posso evitar esse recurso? Eu tenho apenas que montar um túnel. Eu não preciso entrar no meu SSH_SERVER ...

Eu tentei a opção -N, mas ela manteve meu shell ocupado.

    
por Bau Miao 12.11.2013 / 08:30

2 respostas

59

Como dito em outros posts, se você não quiser um prompt no host remoto, você deve usar a opção -N do SSH. Mas isso apenas mantém o SSH rodando sem ter um prompt e o shell ocupado.

Você só precisa colocar o SSH como uma tarefa em segundo plano com o sinal & :

ssh -N -L 8080:ww.xx.yy.zz:80 user@server &

Isso iniciará o tunelamento ssh em segundo plano. Mas algumas mensagens podem aparecer, especialmente quando você tenta se conectar a uma porta que não está ouvindo (se seu servidor apache não for iniciado). Para evitar que essas mensagens apareçam em seu shell ao fazer outras coisas, você pode redirecionar STDOUT / STDERR para o grande vazio:

ssh -N -L 8080:ww.xx.yy.zz:80 user@server >/dev/null 2>&1 & 

Divirta-se com o SSH.

    
por 12.11.2013 / 09:11
33

-f -N é o que você está procurando:

ssh -f -N -L MY_LOCAL_PORT:FOREIGN_ADDRESS:FOREIGN_PORT MYUSER@SSH_SERVER
    
por 22.09.2014 / 13:19