encaminhamento de porta SSH com um canal mestre

3

Estou tentando configurar uma porta reversa para frente em um canal mestre existente, mas não parece estar funcionando e não sei por quê. Eu configurei o canal mestre da seguinte forma:

ssh -MN -oControlPath=/tmp/mycontrolpath hostname

e eu tento abrir uma porta reversa para frente assim:

ssh -oControlPath=/tmp/mycontrolpath -NR 10017:127.0.0.1:10017 hostname

mas este segundo processo falha com a saída

stdin: is not a tty

e nenhum encaminhamento de porta é aberto no host remoto. Este parece ser um recurso suportado do protocolo (de acordo com os RFCs, de qualquer forma), mas eu não estou conseguindo nada rápido tentando usá-lo. Alguém tem isso para trabalhar?

A versão SSH do cliente é OpenSSH_5.3p1 Debian-3ubuntu6, OpenSSL 0.9.8k 25 de março de 2009, conectando-se ao OpenSSH_5.5p1 Debian-6, OpenSSL 0.9.8o 01 de junho de 2010 no servidor.

UPDATE

A execução do comando port-forward com -vvvv fornece esta saída:

OpenSSH_5.3p1 Debian-3ubuntu6, OpenSSL 0.9.8k 25 Mar 2009
debug1: Reading configuration data /home/regularfry/.ssh/config
debug1: Applying options for *
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug3: ssh_msg_send: type 2
debug3: ssh_msg_recv entering
debug3: ssh_msg_send: type 2
debug3: ssh_msg_recv entering
stdin: is not a tty

A seção relevante da saída correspondente do processo de soquete principal é assim:

debug3: fd 5 is not O_NONBLOCK
debug3: ssh_msg_recv entering
debug3: ssh_msg_send: type 2
debug3: ssh_msg_recv entering
debug3: muxserver_accept_control: receiving 2 env vars
debug2: muxserver_accept_control: accepted tty 0, subsys 0, cmd
debug2: muxserver_accept_control: got fds stdin 6, stdout 7, stderr 8
debug3: ssh_msg_send: type 2
debug2: fd 5 setting O_NONBLOCK
debug1: channel 0: new [client-session]
debug3: muxserver_accept_control: channel_new: 0
debug2: channel 0: send open
debug3: Wrote 64 bytes for a total of 2679
debug2: callback start
debug2: client_session2_setup: id 0
debug1: Sending environment.
debug1: Sending env LANG = en_GB.UTF-8
debug2: channel 0: request env confirm 0
debug1: Sending env LC_CTYPE = en_US.UTF-8
debug2: channel 0: request env confirm 0
debug2: channel 0: request shell confirm 1
debug2: callback done
debug2: channel 0: open confirm rwindow 0 rmax 32768
debug3: Wrote 192 bytes for a total of 2871
debug2: channel 0: rcvd adjust 2097152
debug2: channel_input_status_confirm: type 99 id 0
debug2: shell request accepted on channel 0
debug2: channel 0: rcvd ext data 20
debug2: channel 0: written 20 to efd 8
    
por regularfry 05.05.2011 / 17:03

1 resposta

1

Seu exemplo exato funciona bem com o servidor OpenSSH_5.5p1 Debian-4 e o cliente OpenSSH_5.8p1 Debian-4 . Por isso, sugiro atualizar seu cliente, se possível.

Edit: Ele também funciona revertendo cliente e servidor (na verdade, criei um loop de redirecionamento dessa maneira), então pode ser o suficiente para subir para 5.5p1 no cliente.

    
por 08.05.2011 / 17:22