Erreur Git SSH: port 22: pas de route vers l'hôte


8

J'ai essayé d'utiliser set up git et de l'utiliser pour github, puis quand j'ai suivi le document d'aide, mais quand je suis arrivé à l' étape 5 de la section set up ssh keys : Testez tout, Quand j'ai utilisé cette commande: ssh -T git@github.comj'ai eu une erreur :

ssh: se connecter à l'hôte github.com port 22: pas de route vers l'hôte

Ensuite, j'ai utilisé cette commande:

ssh -vT git@github.com

Voici ce que j'ai obtenu:

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

J'ai googlé pendant un moment et j'ai constaté que je devais vérifier si les iptables bloquaient le port. Voici donc le résultat:

~$ 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

Et j'ai essayé la commande suggérée par Gilles:

tcptraceroute github.com 22

Voici ce que j'ai obtenu:

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

Il semble que l'itinéraire soit arrêté au 115.156.255.174, dont je ne sais pas où il se trouve.

Je ne peux pas comprendre ce que cela signifie. Bloque-t-il le port 22?

Soit dit en passant, je peux accéder à Internet et visiter github.com. Et j'utilise Ubuntu 11.10.

Quelqu'un peut-il m'aider? Merci!


Vous connectez-vous à Internet via un serveur proxy?
jackweirdy

@jackweirdy Non, je suis un étudiant utilisant le réseau de mon école. Est-il possible que le port 22 soit bloqué par mon école?
Gnijuohz

Réponses:


3

Votre INPUTchaîne accepte tout. Vous n'avez pas montré votre OUTPUTchaîne, mais je suppose qu'elle accepte tout aussi. Cela implique que la connexion est bloquée quelque part entre vous et Github. Il est possible que le pare-feu de votre école bloque les connexions sortantes vers le port 22.

Vous pouvez avoir une meilleure idée de l'endroit où vos paquets sont interceptés en installant tcptraceroute Installer tcptraceroute et en l'exécutant tcptraceroute github.com 22.

Demandez à l'administrateur de votre école d'ouvrir le port 22, ou au moins (s'ils sont réticents) au port 22 github.com. Votre utilisation du réseau est une utilisation sérieuse, qui devrait être autorisée aux étudiants.

Si les administrateurs ne bougent pas et que vous utilisez un proxy pour vous connecter au Web, vous pouvez obtenir le proxy pour relayer le trafic (cela peut ou non fonctionner, selon la configuration du proxy). Voir Est-il possible de SSH via le port 80?

Soit dit en passant, votre INPUTchaîne autorise tout le trafic entrant, car vous n'avez que des ACCEPTrègles et une ACCEPTpolitique. Un ensemble de règles typique bloquerait le trafic UDP entrant sur les ports non contrôlés et bloquerait les connexions TCP entrantes sur les ports non contrôlés:

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

J'ai exécuté à nouveau cette commande et j'ai constaté que, comme je l'ai mis à jour dans ma question, il n'y avait rien dans la chaîne de sortie. Est-ce à dire que j'accepte tout?
Gnijuohz

@Gnijuohz Oui, puisque vous n'avez que des règles ACCEPTER et que votre politique est ACCEPTER, votre machine autorise tout le trafic entrant et sortant. Vous transférez également tout, sauf s'il existe une restriction sur la troisième règle FORWARD (par exemple, à une interface particulière - vous devez ajouter le -vdrapeau iptablespour voir toutes les parties d'une règle).
Gilles 'SO- arrête d'être méchant'

Merci, j'ai utilisé la commande que vous avez donnée et j'ai reçu la réponse, il semblait qu'elle était bloquée par mon école. Je vais le poster dans ma question tout de suite ~
Gnijuohz

Ajouté :) Est-ce à dire qu'il est bloqué par 115.156.255.174?
Gnijuohz

@Gnijuohz Oui, il semble que 115.156.255.174 (une machine sur le réseau hust.edu.cn) bloque les connexions sortantes vers le port 22.
Gilles 'SO- arrête d'être maléfique'

2

D'après votre commentaire, il est presque certain que l'école a mis en place une sorte de filtre pour bloquer tout le trafic non-port 80 ou tout le trafic non sur liste blanche. Vous pourriez probablement avec un tunnel HTTP SSH comme indiqué ici , ou vous pouvez essayer un navigateur basé sur le client ssh comme indiqué ici .

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.