Git ssh error: port 22: tidak ada rute ke host

8

Saya mencoba menggunakan set git dan menggunakannya untuk github, lalu ketika saya mengikuti doc bantuan, tetapi ketika saya sampai pada langkah 5 dari bagian mengatur kunci ssh : Uji semuanya, Ketika saya menggunakan perintah ini: ssh -T [email protected]Saya mendapat kesalahan :

ssh: terhubung ke host github.com port 22: Tidak ada rute ke host

Lalu saya menggunakan perintah ini:

ssh -vT [email protected]

Inilah yang saya dapat:

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

Saya mencari Google untuk sementara waktu dan menemukan saya harus memeriksa apakah iptables memblokir port. Jadi inilah hasilnya:

~$ 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

Dan saya mencoba perintah yang disarankan oleh Gilles:

tcptraceroute github.com 22

Inilah yang saya dapat:

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

Tampaknya rute dihentikan pada 115.156.255.174, yang saya tidak tahu di mana itu.

Saya tidak tahu apa artinya. Apakah itu memblokir port 22?

Omong-omong, saya dapat mengakses Internet dan mengunjungi github.com. Dan saya menggunakan Ubuntu 11.10.

Adakah yang bisa membantu dengan ini? Terima kasih!

Gnijuohz
sumber
Apakah Anda terhubung ke internet melalui server proxy?
jackweirdy
@ jackweirdy Tidak, saya seorang siswa yang menggunakan jaringan di sekolah saya. Apakah mungkin port 22 diblokir oleh sekolah saya?
Gnijuohz

Jawaban:

3

INPUTRantai Anda menerima segalanya. Anda belum menunjukkan OUTPUTrantai Anda , tetapi saya akan berasumsi bahwa itu menerima segalanya juga. Ini menyiratkan bahwa koneksi diblokir di suatu tempat antara Anda dan Github. Mungkin saja firewall sekolah Anda memblokir koneksi keluar ke port 22.

Anda bisa mendapatkan ide yang lebih baik tentang di mana paket Anda dicegat dengan menginstal tcptraceroute Instal tcptraceroute dan berjalan tcptraceroute github.com 22.

Mintalah administrator sekolah Anda untuk membuka port 22, atau setidaknya (jika mereka enggan) port 22 ke github.com. Penggunaan jaringan oleh Anda adalah penggunaan serius, yang harus diizinkan bagi siswa.

Jika administrator tidak bergerak, dan Anda menggunakan proxy untuk terhubung ke web, Anda mungkin bisa mendapatkan proxy untuk menyampaikan lalu lintas (itu mungkin atau mungkin tidak bekerja, tergantung pada bagaimana proxy dikonfigurasi). Lihat Apakah mungkin untuk SSH melalui port 80?

Omong-omong, INPUTrantai Anda memungkinkan semua lalu lintas masuk, karena Anda hanya memiliki ACCEPTaturan dan ACCEPTkebijakan. Aturan umum yang ditetapkan akan memblokir lalu lintas UDP yang masuk pada port yang tidak diperiksa dan memblokir koneksi TCP yang masuk pada port yang tidak diperiksa:

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
Gilles 'SANGAT berhenti menjadi jahat'
sumber
Saya menjalankan perintah itu lagi dan menemukan bahwa karena saya telah memperbarui dalam pertanyaan saya, tidak ada apa pun di rantai keluaran. Apakah itu berarti saya menerima semuanya?
Gnijuohz
@ Gnijuohz Ya, karena Anda hanya memiliki aturan ACCEPT dan kebijakan Anda ACCEPT, mesin Anda memungkinkan semua lalu lintas masuk dan keluar. Anda juga meneruskan semuanya, kecuali ada batasan pada aturan FORWARD ketiga (misalnya untuk antarmuka tertentu - Anda perlu menambahkan -vbendera iptablesuntuk melihat semua bagian aturan).
Gilles 'SANGAT berhenti menjadi jahat'
Terima kasih, saya menggunakan perintah yang Anda berikan dan saya mendapat respons, sepertinya itu diblokir oleh sekolah saya. Saya akan mempostingnya di pertanyaan saya segera ~
Gnijuohz
Ditambahkan :) Apakah itu berarti diblokir oleh 115.156.255.174?
Gnijuohz
@Gnijuohz Ya, sepertinya 115.156.255.174 (mesin pada jaringan hust.edu.cn) memblokir koneksi keluar ke port 22.
Gilles 'SO-stop being evil'
2

Berdasarkan komentar Anda, hampir pasti bahwa sekolah memiliki semacam filter untuk memblokir semua lalu lintas non-port 80 atau semua lalu lintas yang tidak masuk daftar putih. Anda mungkin bisa lolos dengan SSH HTTP tunnel seperti yang didokumentasikan di sini , atau Anda bisa mencoba klien ssh berbasis browser seperti yang ditunjukkan di sini .

jackweirdy
sumber