Git-SSH-Fehler: Port 22: Keine Route zum Host

Git-SSH-Fehler: Port 22: Keine Route zum Host

Ich habe versucht, Git einzurichten und es für GitHub zu verwenden, dann habe ich die Hilfedokumentation befolgt, aber als ich zuSchritt 5 des Abschnitts „SSH-Schlüssel einrichten“:Testen Sie alles. Als ich diesen Befehl verwendet habe, ist ein Fehler aufgetreten:ssh -T [email protected]

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

Dann habe ich diesen Befehl verwendet:

ssh -vT [email protected]

Hier ist, was ich bekommen habe:

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 prüfen muss, ob iptables den Port blockiert. 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

Hier ist, was ich bekommen habe:

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 endet, ich weiß aber nicht, wo das ist.

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

Übrigens kann ich auf das Internet zugreifen und github.com besuchen. Und ich verwende Ubuntu 11.10.

Kann mir jemand dabei helfen? Danke!

Antwort1

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

Sie können sich einen besseren Überblick darüber verschaffen, wo Ihre Pakete abgefangen werden, indem Sietcptraceroute Installieren Sie tcptracerouteund läuft tcptraceroute github.com 22.

Bitten Sie den Administrator Ihrer Schule, Port 22 oder zumindest (wenn er zögert) Port 22 für zu öffnen github.com. Ihre Nutzung des Netzwerks ist eine ernsthafte Nutzung, die Schülern gestattet werden sollte.

Wenn die Administratoren nicht nachgeben und Sie einen Proxy für die Verbindung zum Internet verwenden, können Sie den Proxy möglicherweise dazu bringen, den Datenverkehr weiterzuleiten (dies kann je nach Konfiguration des Proxys funktionieren oder nicht). Weitere Informationen finden Sie unterIst SSH über Port 80 möglich?

Übrigens INPUTlässt Ihre Kette den gesamten eingehenden Datenverkehr zu, da Sie nur ACCEPTRegeln und eine ACCEPTRichtlinie haben. Ein typischer Regelsatz würde eingehenden UDP-Datenverkehr auf nicht geprüften Ports blockieren und eingehende TCP-Verbindungen auf nicht geprüften Ports blockieren:

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

Antwort2

Basierend auf Ihrem Kommentar ist es fast sicher, dass die Schule eine Art Filter installiert hat, um entweder den gesamten Verkehr, der nicht über Port 80 läuft, oder den gesamten Verkehr, der nicht auf der Whitelist steht, zu blockieren. Sie könnten wahrscheinlich mit einem SSH-HTTP-Tunnel auskommen, wie dokumentiertHier, oder Sie könnten einen browserbasierten SSH-Client ausprobierenwie hier gezeigt.

verwandte Informationen