
私はgitをセットアップしてgithubで使用しようとしましたが、ヘルプドキュメントに従ったところ、SSHキーの設定セクションのステップ5:すべてをテストします。このコマンドを使用したときにエラーが発生しました:ssh -T [email protected]
ssh: ホスト github.com ポート 22 に接続: ホストへのルートがありません
次に、次のコマンドを使用しました。
ssh -vT [email protected]
私が得たものは次のとおりです:
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
しばらくグーグルで検索してみたところ、iptables がポートをブロックしているかどうかを確認する必要があることがわかりました。結果は次のとおりです。
~$ 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
そして、Gilles が提案したコマンドを試してみました:
tcptraceroute github.com 22
私が得たものは次のとおりです:
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
ルートは 115.156.255.174 で止まっているようですが、それがどこにあるかわかりません。
意味がわかりません。ポート 22 をブロックしているのでしょうか?
ちなみに、インターネットにアクセスして github.com にアクセスできます。Ubuntu 11.10 を使用しています。
誰か助けてくれませんか? ありがとう!
答え1
あなたのINPUT
チェーンはすべてを受け入れます。チェーンは示されていませんOUTPUT
が、これもすべてを受け入れるものと仮定します。これは、あなたと Github の間のどこかで接続がブロックされていることを意味します。学校のファイアウォールがポート 22 への送信接続をブロックしている可能性があります。
インストールすることで、パケットがどこで傍受されているかをより正確に把握できます。tcptraceroute そして走ります
tcptraceroute github.com 22
。
学校の管理者にポート 22 を開くように依頼してください。管理者が嫌がる場合は、少なくともポート 22 を に開放してくださいgithub.com
。ネットワークの使用は深刻なものであり、学生に許可されるべきです。
管理者が譲らず、プロキシを使用して Web に接続する場合は、プロキシを使用してトラフィックを中継できる可能性があります (プロキシの設定方法によっては、機能するかどうかはわかりません)。ポート80経由でSSH接続することは可能ですか?
ちなみに、ルールとポリシーINPUT
しかないため、チェーンはすべての着信トラフィックを許可します。一般的なルール セットでは、検査されていないポートでの着信 UDP トラフィックをブロックし、検査されていないポートでの着信 TCP 接続をブロックします。ACCEPT
ACCEPT
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