Я попытался использовать set-git и использовать его для github, затем, когда я последовал за справочным документом, но когда я перешел к шагу 5 раздела «Настройка ключей ssh» : все протестировать, когда я использовал эту команду: ssh -T git@github.com
я получил ошибку :
SSH: подключиться к хосту github.com порт 22: нет маршрута к хосту
Затем я использовал эту команду:
ssh -vT git@github.com
Вот что я получил:
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
И я попробовал команду, предложенную Жилем:
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.
Может кто-нибудь помочь с этим? Спасибо!
Ответы:
Ваша
INPUT
цепь принимает все. Вы не показали своюOUTPUT
цепочку, но я предполагаю, что она тоже все принимает. Это означает, что соединение заблокировано где-то между вами и Github. Возможно, что межсетевой экран вашей школы блокирует исходящие соединения с портом 22.Вы можете получить лучшее представление о том, где перехвачены ваши пакеты, установив tcptraceroute и запустив его
tcptraceroute github.com 22
.Попросите администратора вашей школы открыть порт 22 или, по крайней мере (если они не хотят), порт 22 в
github.com
. Ваше использование сети является серьезным использованием, которое должно быть разрешено для студентов.Если администраторы не планируют бюджет и вы используете прокси-сервер для подключения к сети, вы можете получить прокси-сервер для ретрансляции трафика (он может работать или не работать в зависимости от конфигурации прокси-сервера). См. Возможно ли SSH через порт 80?
Кстати, ваша
INPUT
цепочка разрешает весь входящий трафик, поскольку у вас есть толькоACCEPT
правила иACCEPT
политика. Типичный набор правил будет блокировать входящий трафик UDP на непроверенных портах и блокировать входящие TCP-соединения на непроверенных портах:источник
-v
флаг,iptables
чтобы увидеть все части правила).Исходя из вашего комментария, почти наверняка в школе есть какой-то фильтр, который блокирует либо весь трафик, не относящийся к порту 80, либо весь трафик, не входящий в белый список. Возможно, вы могли бы избежать использования туннеля SSH HTTP, как описано здесь , или вы можете попробовать браузерный ssh-клиент, как показано здесь .
источник