ssh: terhubung ke host port github.com 22: Koneksi habis

174

Saya di bawah proxy dan saya mendorong untuk git berhasil cukup lama.
Sekarang saya tidak bisa mendorong ke git tiba-tiba.
Saya telah menetapkan kunci RSA dan proksi dan memeriksanya ganda, tanpa hasil dan git melempar saya kesalahan yang ditunjukkan pada judul halaman.

Vihari Piratla
sumber
6
Buat hotspot di perangkat seluler Anda, sambungkan melalui perangkat seluler Anda, lalu git push. Bekerja untukku.
zundi
1
Untuk Jenkins, lihat: Mengapa Jenkins gagal saat mengambil dari git?
kenorb
1
Masalah yang sama terjadi pada saya di Inggris dengan Virgin Media. Saya mencoba mendorong / menarik ke GitHub melalui ssh di rumah dan tidak berhasil tetapi di tempat kerja baik-baik saja. Jadi saya menyadari bahwa saya mendapat masalah dengan ISP saya. Perbaikan sederhana bagi saya adalah menggunakan Cloudflare DNS 1.1.1.1daripada yang standar itu sebabnya @zundi berhasil melalui hotspot seluler.
Vladyslav Krylasov

Jawaban:

254

Alasannya bisa karena modifikasi firewall karena Anda berada di bawah jaringan. (Dalam hal ini mereka mungkin secara sengaja memblokir beberapa port)
Untuk mengecek apakah ini alasannya ... lakukan

ssh -T [email protected]

ini harus habis. Jika itu masalahnya, gunakan protokol http alih-alih ssh dengan cara ini,
ubah saja url Anda di file konfigurasi menjadi http.
Begini caranya: -

git config --local -e

ubah entri

 url = [email protected]:username/repo.git

untuk

url = https://github.com/username/repo.git
Vihari Piratla
sumber
6
Saya pernah mengalami masalah itu, tetapi me-restart komputer saya menyelesaikannya.
Kevin Lee
3
fatal: tidak dapat mengakses ' gitlab.com : ******. git /': Nomor port diakhiri dengan 'f'
Fakher
Saya harus menghapus .git dari url agar ini bekerja untuk saya. url = github.com/username/repo
Jesse Buss
4
menggunakan https sebagai gantinya untuk ssh bukan solusi yang tepat. Harus ada cara untuk mengatur proxy di git config dan pengaturan ssh untuk menyelesaikannya.
shijin
6
Virgin Media UK memiliki mode aman anak, yang harus saya nonaktifkan.
Finlay Percy
178

Untuk kasus saya, tidak ada solusi yang disarankan bekerja jadi saya mencoba memperbaikinya sendiri dan saya menyelesaikannya.

Bagi saya, saya mendapatkan kesalahan ini pada contoh AWS EC2 UBUNTU saya, apa yang saya lakukan untuk mengatasinya adalah mengedit ssh config (atau menambahkannya jika tidak ada).

sudo nano ~/.ssh/config

Dan saya menambahkan yang berikut ini

Host github.com
 Hostname ssh.github.com
 Port 443

Kemudian, jalankan perintah ssh -T [email protected]untuk mengonfirmasi jika masalah telah diperbaiki.

Menurut ini

Terkadang, firewall menolak untuk mengizinkan koneksi SSH sepenuhnya. Jika menggunakan kloning HTTPS dengan caching kredensial bukanlah suatu opsi, Anda dapat mencoba untuk mengkloning menggunakan koneksi SSH yang dibuat melalui port HTTPS. Sebagian besar aturan firewall harus mengizinkan ini, tetapi server proxy dapat mengganggu

Semoga ini bisa membantu orang lain yang mengalami masalah yang sama dengan saya.

Mahan_F
sumber
3
Solusi ini bekerja dengan baik untuk saya, meskipun tidak memecahkan masalah untuk GitLab. Dalam hal ini, harap pertimbangkan bahwa GitLab.com menjalankan server SSH kedua yang mendengarkan pada port 443 yang umum digunakan, yang kemungkinan tidak akan di-firewall. Yang harus Anda lakukan adalah mengedit ~/.ssh/configdan mengubah cara Anda terhubung ke GitLab.com. Dalam hal ini, lihat artikel ini: about.gitlab.com/2016/02/18/…
lucascavalcante
1
Hai, saya punya masalah yang sama, router saya dari NET dan dia memblokir port 22. Konfigurasi itu menyelesaikan masalah saya dengan pasti
Pedro Soares
Ini bukan gitkonfigurasi tetapi sshkonfigurasi
GuyT
1
Setelah berjam-jam menemukan jawaban ... Anda CHAMP, lagipula mengapa kita perlu mengubah github.com menjadi ssh.github.com? Saya masih belum mengerti
Robert Tirta
45

Penulisan Ulang URL Dasar

Git menyediakan cara untuk menulis ulang URL menggunakan konfigurasi git. Cukup terbitkan perintah berikut:

git config --global url."https://".insteadOf git://

Sekarang, seolah-olah dengan sihir, semua perintah git akan melakukan substitusi git://kehttps://

sumber: git: // protokol diblokir oleh perusahaan, bagaimana saya bisa mengatasinya?

Michaël P
sumber
1
Terima kasih! Kami berada di Jenkins build jadi saya tidak bisa mengedit file git secara manual (saya tidak punya kredensial git untuk akun jenkins) - jadi ini sangat berguna.
Phil
1
Ini bagus. Saya telah menambahkan alias git untuk masing-masing beralih dengan mudah
lfender6445
17
Mengenai github, perintah harus: git config --global url."https://github.com/".insteadOf [email protected]:. Perhatikan perbedaannya: @menjadi //dan :menjadi /.
Frodon
20

di dalam folder .ssh. Buat file "config"

Host github.com
User git
Hostname ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Port 443

Host gitlab.com
Hostname altssh.gitlab.com
User git
Port 443
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Isaque Elcio
sumber
1
Lihat jawaban Mahan_F untuk penjelasan terperinci tentang mengapa ini terjadi.
refaelio
1
Ini adalah satu-satunya hal yang berhasil bagi saya di GitLab. Terima kasih, Isaque!
awwsmm
5

Solusi cepat: coba beralih ke jaringan lain

Saya mengalami masalah ini saat berada di hotspot (koneksi 3 / 4G). Beralih ke koneksi yang berbeda (WiFi) menyelesaikannya, tetapi ini hanya solusi - Saya tidak mendapatkan kesempatan untuk menyelesaikan masalah ini sehingga jawaban lain mungkin lebih menarik untuk menentukan masalah yang mendasarinya

kip2
sumber
Saya beralih dari WiFi ke 4G dan itu berhasil. Saya juga tidak mengerti.
Adam Casey
4

Saya menghadapi masalah yang sama dan tidak dapat menemukan solusi yang berhasil. Saya menghadapi masalah ini ketika mengatur server lokal dan git tidak dapat terhubung melalui jaringan proxy saya tetapi workstation saya bisa. Ini adalah output ketika saya menjalankan perintah ssh -vT [email protected]

ubuntu@server:~$ ssh -vT [email protected]
OpenSSH_7.2p2 Ubuntu-4ubuntu2.8, OpenSSL 1.0.2g  1 Mar 2016
debug1: Reading configuration data /home/ubuntu/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to github.com [13.234.176.102] port 22.

Jadi saya mencoba menggunakan koneksi SSH yang dibuat melalui port HTTPS dengan mengedit file konfigurasi ~/.ssh/configtetapi tidak berhasil.

Host github.com
 Hostname ssh.github.com
 Port 443

Akhirnya, saya menemukan artikel ini yang memecahkan dan mengungkap masalah sebenarnya.

# github.com
Host github.com
    Hostname ssh.github.com
    ProxyCommand nc -X connect -x <PROXY-HOST>:<PORT> %h %p
    Port 443
    ServerAliveInterval 20
    User git

Ini adalah file konfigurasi saya dan sekarang git bekerja dengan sangat baik melalui ssh!

Animesh Singh
sumber
3

Menjalankan:

nc -v -z <git-repository> <port>

Output Anda akan terlihat seperti:

"Connection to <git-repository> <port> port [tcp/*] succeeded!"

Jika Anda mendapatkan:

connect to <git-repository> <port> (tcp) failed: Connection timed out

Anda perlu mengedit file ~ / .ssh / config Anda. Tambahkan sesuatu seperti berikut ini:

Host example.com
Port 1234
ameen
sumber
5
Saya tidak yakin semua orang akan ncmenginstal. Apa itu seharusnya? Netcat atau apalah?
Hack-R
2

Saya mengalami masalah yang sama, tetapi jawaban yang saya temukan berbeda, berpikir seseorang mungkin menemukan masalah ini, jadi inilah solusi saya.

Aku harus daftar putih 2 IP untuk port 22, 80, 443, dan 9418:

  • 192.30.252.0/22

  • 185.199.108.0/22

Jika IP ini tidak berfungsi, itu mungkin karena mereka diperbarui, Anda dapat menemukan yang terbaru di halaman ini .

Artur Grigio
sumber
0

Jawaban di atas memberi saya informasi yang diperlukan untuk menyelesaikan masalah ini. Dalam kasus saya, url salah memulai dengan ssh: ///

Untuk memeriksa url di konfigurasi git Anda sudah benar, buka file konfigurasi git: -

git config --local -e

Periksa entri url. Seharusnya TIDAK memiliki ssh: /// di awal.

Entri yang salah:

 url = ssh:///[email protected]:username/repo.git

Entri yang benar:

 url = [email protected]:username/repo.git

Jika url Anda benar, maka langkah selanjutnya adalah mencoba jawaban di atas yang menyarankan perubahan protokol ke http.

Manda QoP
sumber
0

Ketika saya tidak sengaja beralih ke jaringan wifi tamu saya mendapat kesalahan ini. Harus beralih kembali ke jaringan wifi default saya .

Ludder
sumber
0

Saya memiliki masalah ini selama 2 jam dan ternyata menghapus "s" dari https dan lakukan:

git clone -b <branchName> http:<projecturl>

Memperbaikinya.

aPurpleDev
sumber
Silakan tutup pertanyaan ini dengan menandainya sebagai jawaban
Clément
0

MASALAH: Langkah untuk menghasilkan masalah: git clone [email protected]: sramachand71 / test.git untuk pertama kalinya di laptop baru ERROR ssh: sambungkan ke host github.com port 22: Koneksi habis waktu berakibat fatal: Koneksi habis waktu fatal: Tidak dapat membaca dari jarak jauh gudang.

Pastikan Anda memiliki hak akses yang benar dan repositori ada. SOLUSI untuk pertama kalinya dalam sistem untuk mengkloning kita perlu memberikan tanda kutip ganda untuk perintah clone. $ git clone "[email protected]: sramachand71 / test.git" saya menghadapi masalah ini dalam sistem bahkan setelah semuanya benar tetapi pada akhirnya diketahui bahwa double quote adalah keharusan untuk url "repository_url.git" untuk pertama kali atau pengguna baru didalam sistem.

Shivaprasad R
sumber
0

Mengubah url repo dari ssh ke https tidak terlalu berarti bagi saya. Karena saya lebih memilih sshlebih httpskarena semacam manfaat tambahan yang saya tidak ingin membuang. Jawaban di atas cukup bagus dan akurat. Jika Anda menghadapi masalah ini di GitLab, silakan buka halaman dokumentasi resmi mereka dan ubah file konfigurasi Anda seperti itu.

Host gitlab.com
  Hostname altssh.gitlab.com
  User git
  Port 443
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/gitlab
Ny. Nowshad Hasan
sumber
0

Nyalakan kembali komputer untuk saya.
Versi Git: 2.27.0.windows.1
Versi OS: Windows 10 v1909

Wenfang
sumber