Túnel SSH: connect_to localhost port 22: failed

3

Eu quero conectar do meu computador a um computador remoto usando um servidor do meio (u encaminhamento de porta). Eu corro este comando no computador remoto:

ssh -R 9300:localhost:22 user@middleserver

e este no meu sistema:

ssh remoteuser@middelserver -p 9300

Mas recebo este erro no meu sistema:

ssh_exchange_identification: Connection closed by remote host

este é o log do computador remoto:

debug1: client_request_forwarded_tcpip: listen localhost port 9309, originator xxx.xxx.xx.xx port 21470
debug2: fd 7 setting O_NONBLOCK
debug1: connect_next: host localhost ([::1]:22) in progress, fd=7
debug2: fd 7 setting TCP_NODELAY
debug3: fd 7 is O_NONBLOCK
debug3: fd 7 is O_NONBLOCK
debug1: channel 1: new [xx.xx.xx.xx]
debug1: confirm forwarded-tcpip
debug3: channel 1: waiting for connection
debug1: channel 1: connection failed: Connection refused
debug2: fd 8 setting O_NONBLOCK
debug1: connect_next: host localhost ([127.0.0.1]:22) in progress, fd=8
debug2: fd 8 setting TCP_NODELAY
debug3: channel 1: waiting for connection
debug1: channel 1: connection failed: Connection refused
connect_to localhost port 22: failed.
debug2: channel 1: zombie
debug2: channel 1: garbage collecting
debug1: channel 1: free: xxx.xxx.xxx.xxx, nchannels 2
debug3: channel 1: status: The following connections are open:
  #0 client-session (t4 r2 i0/0 o0/0 fd 4/5 cc -1)

Qual é o problema?

    
por user39463 16.06.2013 / 19:30

3 respostas

4

(o erro que você denuncia é indicativo de um problema na etapa 1 abaixo)

Antes de tudo, faça como mencionado acima: adicione GatewayPorts yes em / etc / ssh / sshd_config e mude sua linha ssh -R para

ssh -vvv -R *:9300:localhost:22 user@middleserver

(remova -vvv depois que conseguirmos isso funcionar)

* Definir o endereço de ligação como * encaminhará conexões em qualquer interface e não apenas em loopback ('lo' que inclui 127.0.0.1 == localhost). ifconfig lista as interfaces ... ou seja, eth0, lo e wlan0. *

Se isso não funcionar, solucione os problemas:

Etapa 1) Verifique se você tem permissão para ssh em sua máquina remota:

Na própria máquina remota, tente:

ssh localhost

Se a conexão for recusada, você deverá ativar o ssh nessa máquina.

Se isso for bem-sucedido, digite ifconfig e anote o endereço "inet 192.168.xxx.yyy" local.

Step2) tente o SSH a partir da máquina local

Em seguida, vá para uma máquina na mesma rede local que sua máquina remota e tente ssh em sua máquina remota: ssh [email protected]

Se isso não der certo, verifique o firewall da sua máquina remota (veja abaixo).

Se isso for bem sucedido

Passo 3) Tente o ssh da máquina intermediária

faça o login na máquina intermediária e tente uma conexão ssh diretamente de lá. No caso acima, você executou ssh -R *:9300:localhost:22 middleuser@middleserver na máquina remota, portanto, é necessário efetuar login na máquina intermediária e executar: ssh remoteuser@localhost -p 9300

Se isso for bem sucedido, o problema pode estar no firewall do seu servidor:

Antes de mexer com o iptables, verifique se você tem um gerenciador de firewall em uso. Por exemplo, verifique se "ufw" está em uso: sudo ufw status . Seria muito mais fácil usar o ufw do que mexer com o iptables diretamente.

iptables -L e verifique se a porta 9300 está aberta (isso envolverá alguma pesquisa do iptables .. NÃO é simples). Cheat: Se a porta 9300 estiver listada ao lado de http e de maneira semelhante, verifique se http está aberto. Se 9300 estiver listado abaixo, ele pode não ser alcançado se uma diretiva "deny all" for listada antes dela. Também pode ser listado como uma porta nomeada. cat /etc/services | grep 9300 , no entanto, não traz um nome neste caso

Etapa 4) Tente seu login novamente:

ssh remoteuser@middleserver -p 9300
    
por 19.11.2013 / 21:12
1

Se o sshd em seu servidor do meio não tiver a opção de configuração GatewayPorts definida como sim (o padrão é nenhuma exibição man 5 sshd_options ), será necessário especificar um endereço de ligação em seu encaminhamento:

ssh -R *:9300:localhost:22 user@middleserver

(você pode especificar o endereço IP da sua máquina local para torná-lo mais restritivo).

Sem isso, apenas o dispositivo de loopback é encaminhado no middleserver.

    
por 17.06.2013 / 07:54
0

Solução simples, faça:

sudo apt install openssh-server

no computador remoto.

    
por 05.11.2016 / 12:20