
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 INPUT
Kette akzeptiert alles. Sie haben Ihre OUTPUT
Kette 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 und 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 INPUT
lässt Ihre Kette den gesamten eingehenden Datenverkehr zu, da Sie nur ACCEPT
Regeln und eine ACCEPT
Richtlinie 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.