Errore git ssh: porta 22: nessuna route verso l'host


8

Ho provato a usare setup git e usarlo per github, poi quando ho seguito il documento di aiuto, ma quando sono arrivato al punto 5 della sezione set ssh keys : prova tutto, quando ho usato questo comando: ssh -T git@github.comho ricevuto un errore :

ssh: connettersi all'host github.com porta 22: nessuna route verso l'host

Quindi ho usato questo comando:

ssh -vT git@github.com

Ecco cosa ho ottenuto:

OpenSSH_5.8p1 Debian-7ubuntu1, OpenSSL 1.0.0e 6 Sep 2011
debug1: Reading configuration data /home/jacos/.ssh/config
debug1: Applying options for github.com
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to github.com [207.97.227.239] port 22.
debug1: connect to address 207.97.227.239 port 22: No route to host
ssh: connect to host github.com port 22: No route to host

Ho cercato su Google per un po 'e ho scoperto che dovevo verificare se iptables ha bloccato la porta. Quindi ecco il risultato:

~$ sudo /sbin/iptables -L -n
[sudo] password for jacos: 
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:67 
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:67 
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:53 
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:53 

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            10.42.43.0/24       state RELATED,ESTABLISHED 
ACCEPT     all  --  10.42.43.0/24        0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-port-unreachable 
REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-port-unreachable 
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

E ho provato il comando suggerito da Gilles:

tcptraceroute github.com 22

Ecco cosa ho ottenuto:

Selected device eth0, address 222.20.58.XX(sorry...I masked part of my ip), port 33281 for outgoing packets
Tracing the path to github.com (207.97.227.239) on TCP port 22 (ssh), 30 hops max
 1  222.20.58.254  0.891 ms  0.850 ms  0.693 ms
 2  zxq-xs-h3c7510e.hust.edu.cn (115.156.255.137)  1.253 ms  1.569 ms  2.837 ms
 3  zxq-xs-rjs8606.hust.edu.cn (115.156.255.130)  0.729 ms  0.678 ms  0.629 ms
 4  115.156.255.174  0.794 ms  6.279 ms  16.569 ms
 5  * * *
 6  * * *
 7  * * *
 8  * * *
 9  * * *
10  * * *
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *
Destination not reached

Sembra che il percorso sia fermo a 115.156.255.174, che non so dove sia.

Non riesco a capire cosa significhi. Blocca la porta 22?

A proposito, posso accedere a Internet e visitare github.com. E sto usando Ubuntu 11.10.

Qualcuno può aiutare con questo? Grazie!


Ti connetti a Internet tramite un server proxy?
jackweirdy,

@jackweirdy No, sono uno studente che utilizza la rete nella mia scuola. È possibile che la porta 22 sia bloccata dalla mia scuola?
Gnijuohz,

Risposte:


3

La tua INPUTcatena accetta tutto. Non hai mostrato la tua OUTPUTcatena, ma suppongo che accetti anche tutto. Ciò implica che la connessione è bloccata da qualche parte tra te e Github. È possibile che il firewall della tua scuola blocchi le connessioni in uscita alla porta 22.

Puoi avere un'idea migliore di dove vengono intercettati i tuoi pacchetti installando tcptraceroute Installa tcptraceroute ed eseguendolo tcptraceroute github.com 22.

Chiedi all'amministratore della tua scuola di aprire la porta 22, o almeno (se sono riluttanti) alla porta 22 github.com. L'uso della rete è un uso serio, che dovrebbe essere consentito agli studenti.

Se gli amministratori non si spostano e si utilizza un proxy per connettersi al Web, è possibile ottenere il proxy per inoltrare il traffico (potrebbe o meno funzionare, a seconda della configurazione del proxy). Vedere È possibile SSH tramite la porta 80?

A proposito, la tua INPUTcatena consente tutto il traffico in entrata, poiché hai solo ACCEPTregole e una ACCEPTpolitica. Un set di regole tipico bloccherebbe il traffico UDP in entrata su porte non verificate e bloccherebbe le connessioni TCP in entrata su porte non verificate:

iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 123 -j ACCEPT
iptables -P INPUT DROP

Ho eseguito di nuovo quel comando e ho scoperto che, come ho aggiornato nella mia domanda, non c'era nulla nella catena di output. Significa che accetto tutto?
Gnijuohz,

@Gnijuohz Sì, poiché hai solo le regole ACCEPT e la tua politica è ACCEPT, la tua macchina consente tutto il traffico in entrata e in uscita. Inoltri anche tutto, a meno che non ci sia una limitazione sulla terza regola FORWARD (ad esempio a una particolare interfaccia - devi aggiungere il -vflag iptablesper vedere tutte le parti di una regola).
Gilles 'SO- smetti di essere cattivo'

Grazie, ho usato il comando che hai dato e ho ottenuto la risposta, mi è sembrato che fosse bloccato dalla mia scuola. Lo
posterò

Aggiunto :) Significa che è bloccato da 115.156.255.174?
Gnijuohz,

@Gnijuohz Sì, sembra che 115.156.255.174 (una macchina sulla rete hust.edu.cn) stia bloccando le connessioni in uscita verso la porta 22.
Gilles 'SO- smetti di essere malvagio'

2

Sulla base del tuo commento, è quasi certo che la scuola abbia una sorta di filtro in atto per bloccare tutto il traffico non port 80 o tutto il traffico non autorizzato. Probabilmente potresti cavartela con un tunnel HTTP SSH come documentato qui , oppure potresti provare un client ssh basato su browser come mostrato qui .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.