Git ssh エラー: ポート 22: ホストへのルートがありません

Git ssh エラー: ポート 22: ホストへのルートがありません

私は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をインストールするそして走りますtcptraceroute github.com 22

学校の管理者にポート 22 を開くように依頼してください。管理者が嫌がる場合は、少なくともポート 22 を に開放してくださいgithub.com。ネットワークの使用は深刻なものであり、学生に許可されるべきです。

管理者が譲らず、プロキシを使用して Web に接続する場合は、プロキシを使用してトラフィックを中継できる可能性があります (プロキシの設定方法によっては、機能するかどうかはわかりません)。ポート80経由でSSH接続することは可能ですか?

ちなみに、ルールとポリシーINPUTしかないため、チェーンはすべての着信トラフィックを許可します。一般的なルール セットでは、検査されていないポートでの着信 UDP トラフィックをブロックし、検査されていないポートでの着信 TCP 接続をブロックします。ACCEPTACCEPT

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

答え2

あなたのコメントから判断すると、学校には80番ポート以外のトラフィック、またはホワイトリストに登録されていないトラフィックをすべてブロックする何らかのフィルターが設置されていることはほぼ確実です。文書に記載されているように、SSH HTTPトンネルを使用すればおそらく問題はないでしょう。ここまたはブラウザベースのSSHクライアントを試すこともできますここに示すように

関連情報