
Tentei usar o set up git e usá-lo para o github, então quando segui o documento de ajuda, mas quando chegueietapa 5 da seção de configuração de chaves SSH:Teste tudo, quando usei este comando: recebi um erro:ssh -T [email protected]
ssh: conecte-se ao host github.com porta 22: nenhuma rota para o host
Então usei este comando:
ssh -vT [email protected]
Aqui está o que consegui:
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
Pesquisei um pouco no Google e descobri que precisava verificar se o iptables bloqueou a porta. Então aqui está o resultado:
~$ 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
E tentei o comando sugerido por Gilles:
tcptraceroute github.com 22
Aqui está o que consegui:
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
Parece que a rota está parada em 115.156.255.174, que não sei onde fica.
Não consigo entender o que isso significa. Bloqueia a porta 22?
A propósito, posso acessar a Internet e visitar github.com. E estou usando o Ubuntu 11.10.
Alguém pode ajudar com isso? Obrigado!
Responder1
Sua INPUT
corrente aceita tudo. Você não mostrou sua OUTPUT
corrente, mas presumo que ela também aceita tudo. Isso implica que a conexão está bloqueada em algum lugar entre você e o Github. É possível que o firewall da sua escola bloqueie as conexões de saída para a porta 22.
Você pode ter uma ideia melhor de onde seus pacotes são interceptados instalandotcptraceroute e correndo
tcptraceroute github.com 22
.
Peça ao administrador da sua escola para abrir a porta 22, ou pelo menos (se estiver relutante) a porta 22 para github.com
. O seu uso da rede é um uso sério, que deveria ser permitido aos alunos.
Se os administradores não cederem e você usar um proxy para se conectar à Web, poderá conseguir que o proxy retransmita o tráfego (pode ou não funcionar, dependendo de como o proxy está configurado). VerÉ possível fazer SSH pela porta 80?
Aliás, sua INPUT
rede permite todo o tráfego de entrada, já que você só tem ACCEPT
regras e uma ACCEPT
política. Um conjunto de regras típico bloquearia o tráfego UDP de entrada em portas não controladas e bloquearia conexões TCP de entrada em portas não controladas:
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
Responder2
Com base no seu comentário, é quase certo que a escola possui algum tipo de filtro para bloquear todo o tráfego que não seja da porta 80 ou todo o tráfego que não esteja na lista de permissões. Você provavelmente poderia se safar com um túnel HTTP SSH conforme documentadoaqui, ou você pode tentar um cliente ssh baseado em navegadorcomo mostrado aqui.