Git ssh Fehler: Port 22: Keine Route zum Host

8

Ich habe versucht, git einzurichten und es für github zu verwenden, als ich dann dem Hilfedokument folgte, aber als ich zu Schritt 5 des Abschnitts zum Einrichten von SSH-Schlüsseln kam : Alles testen, Als ich diesen Befehl verwendete: ssh -T [email protected]Ich habe einen Fehler erhalten ::

ssh: Verbindung zum Host herstellen github.com Port 22: Keine Route zum Host

Dann habe ich diesen Befehl verwendet:

ssh -vT [email protected]

Folgendes habe ich bekommen:

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

Ich habe eine Weile gegoogelt und festgestellt, dass ich überprüfen muss, ob die iptables den Port blockiert haben. Also hier ist das Ergebnis:

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

Und ich habe den von Gilles vorgeschlagenen Befehl ausprobiert:

tcptraceroute github.com 22

Folgendes habe ich bekommen:

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

Es scheint, dass die Route bei 115.156.255.174 gestoppt ist, was ich nicht weiß, wo es ist.

Ich kann nicht herausfinden, was es bedeutet. Blockiert es Port 22?

Ich kann übrigens auf das Internet zugreifen und github.com besuchen. Und ich benutze Ubuntu 11.10.

Kann mir jemand dabei helfen? Vielen Dank!

Gnijuohz
quelle
Stellen Sie über einen Proxyserver eine Verbindung zum Internet her?
Jackweirdy
@jackweirdy Nein, ich bin ein Schüler, der das Netzwerk an meiner Schule nutzt. Ist es möglich, dass der Port 22 von meiner Schule blockiert wird?
Gnijuohz

Antworten:

3

Ihre INPUTKette akzeptiert alles. Sie haben Ihre OUTPUTKette nicht gezeigt , aber ich gehe davon aus, dass sie auch alles akzeptiert. Dies bedeutet, dass die Verbindung irgendwo zwischen Ihnen und Github blockiert ist. Möglicherweise blockiert die Firewall Ihrer Schule ausgehende Verbindungen zu Port 22.

Sie können eine bessere Vorstellung davon bekommen, wo Ihre Pakete abgefangen werden, indem Sie tcptraceroute installieren Installieren Sie tcptracerouteund ausführentcptraceroute github.com 22 .

Bitten Sie den Administrator Ihrer Schule, Port 22 oder zumindest (wenn sie nicht bereit sind) Port 22 zu öffnen github.com. Ihre Nutzung des Netzwerks ist eine ernsthafte Nutzung, die den Schülern gestattet sein sollte.

Wenn sich die Administratoren nicht rühren und Sie einen Proxy verwenden, um eine Verbindung zum Web herzustellen, können Sie den Proxy möglicherweise dazu bringen, Datenverkehr weiterzuleiten (dies funktioniert möglicherweise oder nicht, je nachdem, wie der Proxy konfiguriert ist). Siehe Ist SSH über Port 80 möglich?

Ihre INPUTKette erlaubt übrigens den gesamten eingehenden Datenverkehr, da Sie nur ACCEPTRegeln und eine ACCEPTRichtlinie haben. Ein typischer Regelsatz blockiert eingehenden UDP-Verkehr an nicht überprüften Ports und eingehende TCP-Verbindungen an nicht überprüften Ports:

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
Gilles 'SO - hör auf böse zu sein'
quelle
Ich habe diesen Befehl erneut ausgeführt und festgestellt, dass sich bei der Aktualisierung meiner Frage nichts in der Ausgabekette befand. Heißt das, ich akzeptiere alles?
Gnijuohz
@Gnijuohz Ja, da Sie nur ACCEPT-Regeln haben und Ihre Richtlinie ACCEPT lautet, lässt Ihr Computer den gesamten eingehenden und ausgehenden Datenverkehr zu. Sie leiten auch alles weiter, es sei denn, die dritte FORWARD-Regel ist eingeschränkt (z. B. an eine bestimmte Schnittstelle - Sie müssen das -vFlag hinzufügen iptables, um alle Teile einer Regel anzuzeigen).
Gilles 'SO - hör auf böse zu sein'
Danke, ich habe den Befehl verwendet, den Sie gegeben haben, und ich habe die Antwort erhalten. Es scheint, dass sie von meiner Schule blockiert wurde. Ich werde es sofort in meiner Frage
posten
Hinzugefügt :) Bedeutet das, dass es von 115.156.255.174 blockiert wird?
Gnijuohz
@Gnijuohz Ja, es sieht so aus, als ob 115.156.255.174 (ein Computer im hust.edu.cn-Netzwerk) ausgehende Verbindungen zu Port 22 blockiert.
Gilles 'SO - hör auf böse zu sein
2

Basierend auf Ihrem Kommentar ist es fast sicher, dass die Schule über einen Filter verfügt, der entweder den gesamten Verkehr ohne Port 80 oder den gesamten Verkehr ohne Whitelist blockiert. Sie könnten wahrscheinlich mit einem SSH-HTTP-Tunnel davonkommen, wie hier dokumentiert , oder Sie könnten einen browserbasierten ssh-Client wie hier gezeigt ausprobieren .

Jackweirdy
quelle