tunnel ssh rifiutando le connessioni con "canale 2: aperto fallito"

All'improvviso (leggere: senza cambiare alcun parametro) la mia macchina virtuale netbsd ha iniziato ad agire stranamente. I sintomi riguardano la tunneling di ssh.

Dal mio computer porttile lancio:

  • Il modo più semplice per sincronizzare due cartelle
  • Vagrant non pronto per errore SSH su VirtualBox e Laravel Homestead
  • Monitorare lo stato dei client VPN
  • Imansible associare a un determinato indirizzo IPv4 quando si eseguono connessioni TCP in output, a hostnames che risolvono sia gli indirizzi IPv4 che IPv6
  • Perché l'UDP multicast può essere più lento di unicast UDP?
  • Come impostare "Performance Monitor" come contatore di width di banda?
  • $ ssh -L 7000:localhost:7000 user@host -N -v 

    Poi, in un'altra shell:

     $ irssi -c localhost -p 7000 

    Il debug ssh dice:

     debug1: Connection to port 7000 forwarding to localhost port 7000 requested. debug1: channel 2: new [direct-tcpip] channel 2: open failed: connect failed: Connection refused debug1: channel 2: free: direct-tcpip: listening port 7000 for localhost port 7000, connect from 127.0.0.1 port 53954, nchannels 3 

    Ho provato anche con localhost: 80 per connettersi al server web (remoto), con risultati identici.

    L'host remoto esegue NetBSD:

     bash-4.2# uname -a NetBSD host 5.1_STABLE NetBSD 5.1_STABLE (XEN3PAE_DOMU) #6: Fri Nov 4 16:56:31 MET 2011 root@youll-thank-me-later:/m/obj/m/src/sys/arch/i386/compile/XEN3PAE_DOMU i386 

    Sono un po 'perduta. Ho provato a eseguire tcpdump sull'host remoto e ho scoperto questi "cattivi chksum":

     09:25:55.823849 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 67, bad cksum 0 (->3cb3)!) 127.0.0.1.54381 > 127.0.0.1.7000: P, cksum 0xfe37 (incorrect (-> 0xa801), 1622402406:1622402421(15) ack 1635127887 win 4096 <nop,nop,timestamp 5002727 5002603> 

    Ho provato a riavviare il demone ssh senza alcun risultato. Non ho ancora riavviato – forse qualcuno qui può suggerire altre diagnosi. Penso che potrebbe essere il driver della scheda di networking virtuale, o qualcuno ha radicato il nostro ssh.

    Idee ..?

  • Collegamento all'hardware AS / 400
  • Errori di connessione MySQL intermittenti
  • Come forzare MySQL per connettersi tramite TCP invece di una presa Unix?
  • Fakeout RDP quando connectiong: non fa nulla, nessun errore
  • Cosa succede se una macchina ottiene un pacchetto SYN / ACK senza submit il pacchetto SYN iniziale?
  • Il server di applicazioni richiede molto tempo per connettersi a MySQL Server
  • 10 Solutions collect form web for “tunnel ssh rifiutando le connessioni con "canale 2: aperto fallito"”

    Anche se il problema di OP è già stato risolto, ho deciso di condividere la soluzione per il mio problema, perché ho ricevuto lo stesso messaggio di errore da ssh e non ho trovato alcuna soluzione in altri siti.

    Nel mio caso wherevo collegarmi al servizio che ascolta solo su IPv6. Provai:

      ssh -f root@192.168.0.18 -L 51005: 127.0.0.1: 51005 -N
     ssh -f root@192.168.0.18 -L 51005: localhost: 51005 -N 

    e alcuni altri modi, ma non funzionava. Ogni tentativo di connessione a http://localhost:51005 provoca errori come questo: channel 2: open failed: connect failed: Connection refused

    La soluzione è:

      ssh -f root@192.168.0.18 -L 51005: [:: 1]: 51005 -N 

    L'indirizzo IPv6 deve essere in parentesi quadre.

    Problema risolto:

     $ ssh -L 7000:127.0.0.1:7000 user@host -N -v -v 

    Apparentemente, l'host remoto non è piaciuto a " localhost ". Tuttavia, i /etc/hosts remoti contengono:

     ::1 localhost localhost. 127.0.0.1 localhost localhost. 

    mentre l'interface di networking locale è

     lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33184 inet 127.0.0.1 netmask 0xff000000 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2 

    Sospiro. tanto per la bontà di 100rp che ho messo 🙂

    Vorrei prima provare questo.

     $ ssh -L 7000:127.0.0.1:7000 user@host -N -v -v 

    È ansible utilizzare "-v" fino a 3 volte per aumentare la verbosità.

    Penso che questo messaggio di errore possa verificarsi se un firewall blocca la port 7000, ma l'hai già deciso. (Se i lettori successivi non hanno deciso questo, guardate l'output di netstat --numbersc-ports .)

    Penso di aver visto questo messaggio di errore molto tempo fa, quando ssh è venuto a conoscenza di indirizzi IPV6 dopo un aggiornamento. Potrei sbagliarmi in proposito. Se ti senti come sperimentare, puoi provare l'indirizzo IPP6 loopback "0: 0: 0: 0: 0: 0: 0: 1" (o ":: 1").

    Ho riscontrato questo stesso errore durante la connessione a mysql su un altro server tramite un tunnel ssh. Ho scoperto che il parametro dell'indirizzo di binding in /etc/my.cnf sul server di destinazione è stato associato al mio server esterno (server dual NIC) piuttosto che interno, che non ho avuto alcuna utilità.

    Quando ho impostato bind-address = 127.0.0.1, potrei utilizzare con successo il mio tunnel ssh come segue:

     ssh -N -f -L 3307:127.0.0.1:3306 user@server.name mysql -h 127.0.0.1 --port=3307 --protocol=TCP -uusername -ppassword 

    Ho riscontrato questo errore quando ho inoltrato porte con un nome a dominio completo anziché localhost:

     ssh -L 5900:host.name.com:5900 x11vnc 

    La port è stata aperta solo per localhost, per accettare connessioni con un nome pienamente qualificato, ho dovuto aggiungere una descrizione della port binding :

     ssh -L *:5900:host.name.com:5900 x11vnc 

    che consentirebbe connessioni da qualsiasi punto (quindi non è sicuro, utilizzarlo con parsimonia).

    ???

    canale 2: aperto fallito: connessione non rioutput: connessione rifiutata

    user@host non c'è niente di ascolto della port 7000, è semplice e questo è tutto.

    "… apparentemente," localhost "non è piaciuto dall'host remoto, tuttavia, il / etc / hosts remoto contiene:"

    Salvo che tu fossi in esecuzione ssh sul client, quindi il tuo client non ti piaceva "localhost". Il file / etc / hosts remoto è per il collegamento remoto delle connessioni non in arrivo .

    Per me aggiungendo il leader ":" funziona così il command nel tuo caso sarebbe simile a questo:

     ssh -L :7000:localhost:7000 user@host -N -v 

    Ho ricevuto lo stesso messaggio di errore:

    canale 3: aperto fallito: connessione non rioutput: connessione rifiutata

    E la causa è stata l'errore umano: cerco di accedere a una port diversa dell'host remoto di quella che ho specificato.

    Ho solo pensato di condividere questo, anche se questo non è probabilmente il motivo per cui la maggior parte di voi sta vivendo questo errore.

    Per me, stavo cercando ssh -L <port>:<remote server IP>:<port> <login>@<remote server IP> quando avrei dovuto fare ssh -L <port>:127.0.0.1:<port> <login>@<remote server IP> .

    Spero che questo aiuti qualcuno!

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.