ssh: ana bilgisayara bağlan github.com bağlantı noktası 22: Bağlantı zaman aşımına uğradı


175

Ben bir vekil altındayım ve bir süre başarılı bir şekilde git için bastırıyorum.
Şimdi birdenbire git'e giremiyorum.
RSA anahtarını ve proxy'yi ayarladım ve iki kez kontrol ettim, boşuna ve git bana sayfanın başlığında gösterilen hatayı atıyor.


6
Mobil cihazınızda bir hotspot oluşturun, mobil cihazınız üzerinden bağlanın git push. Benim için çalıştı.
zundi


1
Aynı sorun İngiltere'de Virgin Media ile de oldu. Evde ssh üzerinden GitHub'a itmeye / çekmeye çalıştım ama hiç şansım yoktu. Bu yüzden ISS'im ile sorun yaşadığımı fark ettim. Benim için basit düzeltme, 1.1.1.1varsayılan bir yerine Cloudflare DNS kullanmaktı, bu yüzden @zundi bir mobil hotspot'ta başarılı oldu.
Vladyslav Krylasov

Yanıtlar:


254

Bir ağa altında olduğu gibi nedeni güvenlik duvarı değişiklik olabilir. (Kasıtlı bazı portları engelleyebilir Hangi durumda)
bu nedenle eğer do ... tekrar kontrol etmek

ssh -T git@github.com

bu zaman aşımına uğrar. Bu durumda ssh yerine http protokolünü kullanın
, yapılandırma dosyasındaki URL'nizi http olarak değiştirin.
İşte nasıl: -

git config --local -e

girişini değiştir

 url = git@github.com:username/repo.git

için

url = https://github.com/username/repo.git

6
Bu sorunu bir kez yaşadım, ancak bilgisayarımı yeniden başlatmak sorunu çözdü.
Kevin Lee

3
fatal: ' gitlab.com : ******. git /' 'e erişilemiyor : Bağlantı noktası numarası' f 'ile sona erdi
Fakher

Bunun benim için çalışması için .git'i url'den kaldırmak zorunda kaldım. url = github.com/kullaniciadi/repo
Jesse Buss

4
ssh yerine https kullanmak doğru çözüm değildir. Bunu çözmek için git config ve ssh ayarlarında proxy ayarlamanın bir yolu olmalıdır.
shijin

6
Virgin Media UK'de devre dışı bırakmam gereken bir çocuk güvenliği modu var.
Finlay Percy

179

Benim durumum için önerilen çözümlerin hiçbiri işe yaramadı, bu yüzden kendim düzeltmeye çalıştım ve çözdüm.

Benim için bu hatayı AWS EC2 UBUNTU örneğimde alıyorum, çözmek için yaptığım şey ssh config'i düzenlemekti (ya da yoksa ekleyin).

sudo nano ~/.ssh/config

Ve aşağıdakileri ekledim

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

Ardından, ssh -T git@github.comsorunun giderilip giderilmediğini onaylamak için komutu çalıştırın .

Göre bu

Bazen, güvenlik duvarları SSH bağlantılarına tamamen izin vermeyi reddeder. Kimlik bilgisi önbelleği ile HTTPS klonlama kullanmak bir seçenek değilse, HTTPS bağlantı noktası üzerinden yapılan bir SSH bağlantısını kullanarak klonlamaya çalışabilirsiniz. Çoğu güvenlik duvarı kuralı buna izin vermelidir, ancak proxy sunucuları karışabilir

Umarım bu benim aynı sorunu yaşayan herkese yardımcı olur.


3
GitLab için sorunu çözmese de bu çözüm benim için iyi çalıştı. Bu durumda, GitLab.com'un yaygın olarak kullanılan 443 numaralı bağlantı noktasını dinleyen ve güvenlik duvarı olasılığı düşük olan ikinci bir SSH sunucusu çalıştırdığını düşünün. Yapmanız gereken tek şey ~/.ssh/configGitLab.com'a bağlanmak ve bağlantı şeklinizi değiştirmek. Bu durumda, şu makaleye bakın: about.gitlab.com/2016/02/18/…
lucascavalcante

1
Merhaba, ben aynı bir sorun vardı, benim yönlendirici NET ve onu 22 bağlantı noktasını engellemek. Bu yapılandırma sorunumu kesinlikle çözdü
Pedro Soares

O değil gitkonfigürasyon dosyasında ancak sshyapılandırma
Guyt

1
Anwers bulduktan sonra ... sen CHAMP'sın, niye github.com'u ssh.github.com olarak değiştirmemiz gerekiyor? Hala anlamıyorum
Robert Tirta

45

Temel URL Yeniden Yazma

Git, git config kullanarak URL'leri yeniden yazmanın bir yolunu sunar. Aşağıdaki komutu vermeniz yeterlidir:

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

Şimdi, büyü gibi, tüm git komutları bir ikame gerçekleştirecek git://içinhttps://

kaynak: git: // protokolü şirket tarafından engellendi, nasıl başa çıkabilirim?


1
Teşekkürler! Bizimki Jenkins inşa sırasında oldu, bu yüzden ben git dosyasını (jenkins hesabı için git kimlik bilgileri yok) el ile düzenleyemedi oldu - bu yüzden bu çok yararlı oldu.
Phil

1
Bu harika. Kolayca geçiş yapmak için her biri için git takma adlar ekledim
lfender6445

17
GitHub ilgili komut şu şekilde olmalıdır: git config --global url."https://github.com/".insteadOf git@github.com:. Farklara dikkat edin: @olur //ve :olur /.
Frodon

20

.ssh klasörü içinde "config" dosyası oluşturun

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

1
Bunun neden olduğuna dair ayrıntılı açıklama için Mahan_F yanıtına bakın.
refaelio

1
GitLab'da benim için çalışan tek şey bu. Teşekkürler Isaque!
awwsmm

5

Hızlı çözüm: farklı bir ağa geçmeyi deneyin

Sıcak noktadayken (3 / 4G bağlantısı) bu sorunu yaşadım. Farklı bir bağlantıya (WiFi) geçmek sorunu çözdü, ancak bu sadece bir çözüm - sorunun alt kısmına ulaşma şansım olmadı, bu yüzden diğer cevaplar altta yatan sorunu belirlemek için daha ilginç olabilir


WiFi 4G geçti ve çalıştı. Ben de anlamıyorum.
Adam Casey

4

Aynı sorunla karşılaştım ve çalışan bir çözüm bulamadım. Yerel bir sunucu kurarken bu sorunla karşılaştım ve git proxy ağım üzerinden bağlanamadı ama iş istasyonum olabilir. Komutu çalıştırdığımda çıktı buydu ssh -vT git@github.com

ubuntu@server:~$ ssh -vT git@github.com
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.

Bu yüzden yapılandırma dosyasını düzenleyerek HTTPS bağlantı noktası üzerinden yapılan bir SSH bağlantısı kullanmayı denedim, ~/.ssh/configancak boşuna değil.

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

Sonunda, gerçek sorunu çözen ve ortaya çıkaran bu makaleyi buldum .

# 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

Bu benim config dosya ve şimdi git ssh ile mükemmel iyi çalışıyor!


3

Yürütme:

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

Çıktınız şöyle görünmelidir:

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

Alırsan:

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

~ / .Ssh / config dosyanızı düzenlemeniz gerekir. Aşağıdaki gibi bir şey ekleyin:

Host example.com
Port 1234

5
Herkesin nckurulacağından emin değilim . Bu ne olmalı? Netcat falan mı?
Hack-R

2

Aynı sorunu yaşıyordum, ama bulduğum cevap farklıydı, birisinin bu sorunla karşılaşabileceğini düşündüm, işte benim çözümüm.

Ben port için beyaz listeye 2 IP'ler zorunda kaldı 22, 80, 443, ve 9418:

  • 192.30.252.0/22

  • 185.199.108.0/22

Bu IP'lerin çalışmaması durumunda, güncellenmiş olmaları olabilir, en güncel olanları bu sayfada bulabilirsiniz .


0

Yukarıdaki cevap bana bu sorunu çözmek için gereken bilgileri verdi. Benim durumumda URL yanlış ssh ile başlıyordu: ///

Git config dosyanızdaki URL'nin doğru olup olmadığını kontrol etmek için git config dosyasını açın: -

git config --local -e

URL girişini kontrol edin. Başlangıçta ssh: /// OLMAMALIDIR.

Yanlış giriş:

 url = ssh:///git@github.com:username/repo.git

Doğru giriş:

 url = git@github.com:username/repo.git

URL'niz doğruysa, bir sonraki adım, protokolün http olarak değiştirilmesini öneren yukarıdaki yanıtı denemek olacaktır.


0

Bir konuk wifi ağına yanlışlıkla geçtiğimde bu hatayı aldım. Benim varsayılan wifi ağına geri dönmek zorunda kaldı .


0

Ben 2 saat boyunca bu sorunu vardı ve "s" https kaldırılması çıkıyor ve sadece yapmak:

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

Onu düzeltti.


Lütfen bu soruyu yanıtlandığı gibi etiketleyin
Clément

0

SORUN: Sorunu üretme adımı: git clone git@github.com: sramachand71 / test.git yeni dizüstü bilgisayarda ilk kez HATA ssh: ana bilgisayara bağlan github.com bağlantı noktası 22: Bağlantı zaman aşımına uğradı: Uzaktan kumandadan okunamadı deposu.

Lütfen doğru erişim haklarına sahip olduğunuzdan ve havuzun var olduğundan emin olun. ÇÖZÜM sistemde ilk kez klonlamak için klon komutu için çift tırnak vermeliyiz. $ git clone "git@github.com: sramachand71 / test.git" Ben her şey doğruysa ama sonunda ilk kez veya yeni kullanıcı için "repository_url.git" url için çift tırnak şart olduğunu fark sonra bile sistemde bu sorunla karşı karşıya Sistemde.


0

Repo URL'sini ssh'den https'ye değiştirmek benim için çok anlamlı değil. Ben tercih olarak sshüzerinde httpsçünkü atmak istemiyorum ekstra faydalar çeşit. Yukarıdaki cevaplar oldukça iyi ve doğrudur. GitLab'da bu sorunla karşılaşırsanız, lütfen resmi dokümantasyon sayfasına gidin ve yapılandırma dosyanızı böyle değiştirin.

Host gitlab.com
  Hostname altssh.gitlab.com
  User git
  Port 443
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/gitlab

0

Bilgisayarı yeniden başlat benim için çözdü.
Git sürümü: 2.27.0.windows.1
İşletim sistemi sürümü: Windows 10 v1909

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.