ssh: เชื่อมต่อกับโฮสต์ github.com พอร์ต 22: หมดเวลาการเชื่อมต่อ


174

ฉันอยู่ภายใต้พร็อกซีและฉันพยายามเข้าสู่ระบบคอมไพล์สำเร็จสักพัก
ตอนนี้ฉันไม่สามารถเข้าสู่คอมไพล์ได้ในทันที
ฉันได้ตั้งค่าคีย์ RSA และพรอกซีแล้วตรวจสอบอีกครั้งโดยไม่มีประโยชน์และคอมไพล์กำลังโยนข้อผิดพลาดที่แสดงในชื่อของหน้า


6
git pushสร้างฮอตสปอตบนโทรศัพท์มือถือของคุณเชื่อมต่อผ่านโทรศัพท์มือถือของคุณแล้ว ทำงานให้ฉัน
zundi


1
ปัญหาเดียวกันนี้เกิดขึ้นกับฉันในสหราชอาณาจักรกับ Virgin Media ฉันพยายามที่จะผลักดัน / ดึง GitHub ผ่านทาง ssh ที่บ้านและไม่มีโชค แต่ที่ทำงานได้ดี ดังนั้นฉันจึงรู้ว่าฉันมีปัญหากับ ISP ของฉัน การแก้ไขที่ง่ายสำหรับฉันคือการใช้ Cloudflare DNS 1.1.1.1แทนที่จะเป็นค่าเริ่มต้นซึ่งเป็นเหตุให้ @zundi ประสบความสำเร็จผ่านฮอตสปอตมือถือ
Vladyslav Krylasov

คำตอบ:


254

เหตุผลอาจเป็นการปรับเปลี่ยนไฟร์วอลล์ตามที่คุณอยู่ภายใต้เครือข่าย (ในกรณีนี้พวกเขาอาจบล็อกพอร์ตบางพอร์ตโดยเจตนา)
หากต้องการตรวจสอบซ้ำอีกครั้งว่านี่เป็นสาเหตุ ...

ssh -T git@github.com

สิ่งนี้ควรหมดเวลา หากเป็นกรณีนี้ให้ใช้โปรโตคอล http แทนวิธีนี้
เพียงเปลี่ยน URL ของคุณในไฟล์กำหนดค่าเป็น http
นี่คือวิธี: -

git config --local -e

เปลี่ยนรายการของ

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

ถึง

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

6
ฉันมีปัญหานั้นหนึ่งครั้ง แต่การรีสตาร์ทคอมพิวเตอร์ของฉันแก้ไขได้
Kevin Lee

3
ร้ายแรง: ไม่สามารถเข้าถึง ' gitlab.com : ******. git /': หมายเลขพอร์ตลงท้ายด้วย 'f'
Fakher

ฉันต้องลบ. git ออกจาก url เพื่อให้สิ่งนี้ใช้งานได้สำหรับฉัน url = github.com/username/repo
Jesse Buss

4
ใช้ https แทนสำหรับ ssh ไม่ใช่ทางออกที่ถูกต้อง ต้องมีวิธีการตั้งค่าพร็อกซีในการตั้งค่า git และการตั้งค่า ssh เพื่อแก้ปัญหานี้
shijin

6
Virgin Media UK มีโหมดปลอดภัยสำหรับเด็กซึ่งฉันต้องปิดการใช้งาน
Finlay Percy

178

สำหรับกรณีของฉันไม่มีวิธีแก้ไขปัญหาที่แนะนำเลยฉันจึงลองแก้ไขด้วยตัวเองและฉันได้รับการแก้ไขแล้ว

สำหรับฉันฉันได้รับข้อผิดพลาดนี้บนอินสแตนซ์ AWS EC2 UBUNTU ของฉันสิ่งที่ฉันทำเพื่อแก้ไขคือการแก้ไขการกำหนดค่า ssh (หรือเพิ่มหากไม่มีอยู่)

sudo nano ~/.ssh/config

และฉันเพิ่มต่อไปนี้

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

จากนั้นเรียกใช้คำสั่งssh -T git@github.comเพื่อยืนยันว่าปัญหาได้รับการแก้ไขหรือไม่

ตามนี้

บางครั้งไฟร์วอลล์ปฏิเสธที่จะอนุญาตการเชื่อมต่อ SSH ทั้งหมด หากใช้การโคลน HTTPS พร้อมการแคชข้อมูลรับรองไม่ใช่ตัวเลือกคุณสามารถพยายามโคลนโดยใช้การเชื่อมต่อ SSH ที่ทำผ่านพอร์ต HTTPS กฎไฟร์วอลล์ส่วนใหญ่ควรอนุญาตสิ่งนี้ แต่พร็อกซีเซิร์ฟเวอร์อาจรบกวน

หวังว่านี่จะช่วยให้ทุกคนที่มีปัญหาแบบเดียวกันกับฉัน


3
วิธีนี้ใช้ได้ผลดีสำหรับฉันแม้ว่าจะไม่ได้แก้ปัญหาสำหรับ GitLab ในกรณีดังกล่าวโปรดพิจารณาว่า GitLab.com เรียกใช้เซิร์ฟเวอร์ SSH ตัวที่สองซึ่งฟังพอร์ตที่ใช้งานทั่วไป 443 ซึ่งไม่น่าจะเป็นไฟร์วอลล์ สิ่งที่คุณต้องทำคือแก้ไข~/.ssh/configและเปลี่ยนวิธีการเชื่อมต่อกับ GitLab.com ในกรณีนี้ดูบทความนี้: about.gitlab.com/2016/02/18/…
lucascavalcante

1
สวัสดีฉันมีปัญหาเดียวกันเราเตอร์ของฉันมาจาก NET และเขาปิดกั้นพอร์ต 22 การกำหนดค่านั้นแก้ไขปัญหาของฉันได้อย่างแน่นอน
Pedro Soares

มันไม่ได้gitปรับแต่ง แต่sshการตั้งค่า
GuyT

1
หลังจากผ่านไปหลายชั่วโมงในการหาคำตอบ ... คุณคือ CHAMP แล้วทำไมเราต้องเปลี่ยน github.com เป็น ssh.github.com ฉันยังไม่เข้าใจ
Robert Tirta

45

การเขียน URL ขั้นพื้นฐาน

Git จัดเตรียมวิธีการเขียน URL ใหม่โดยใช้ git config ออกคำสั่งต่อไปนี้:

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

ตอนนี้ราวกับมีเวทมนตร์คำสั่งคอมไพล์ทั้งหมดจะดำเนินการเปลี่ยนตัวของgit://การhttps://

แหล่งที่มา: git: // โพรโทคอลที่ถูกบล็อกโดย บริษัท ฉันจะแก้ไขได้อย่างไร


1
ขอบคุณ! พวกเราอยู่ในช่วงสร้างเจนกินส์ดังนั้นฉันจึงไม่สามารถแก้ไขไฟล์คอมไพล์ได้ด้วยตนเอง (ฉันไม่มีข้อมูลประจำตัวคอมไพล์สำหรับบัญชีเจนกินส์) - ดังนั้นนี่จึงมีประโยชน์มาก
Phil

1
มันเยี่ยมมาก ฉันได้เพิ่มชื่อแทนคอมไพล์สำหรับแต่ละคนเพื่อสลับได้อย่างง่ายดาย
lfender6445

17
เกี่ยวกับ GitHub git config --global url."https://github.com/".insteadOf git@github.com:คำสั่งควรจะ: ขอให้สังเกตความแตกต่าง: @กลายเป็น//และจะกลายเป็น: /
Frodon

20

ภายในโฟลเดอร์. ssh สร้างไฟล์ "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

1
ดูคำตอบ Mahan_F สำหรับคำอธิบายโดยละเอียดเกี่ยวกับสาเหตุที่เกิดขึ้น
refaelio

1
นี่เป็นสิ่งเดียวที่ทำงานกับฉันใน GitLab ขอบคุณ Isaque!
awwsmm

5

วิธีแก้ปัญหาด่วน: ลองเปลี่ยนไปใช้เครือข่ายอื่น

ฉันประสบปัญหานี้ขณะใช้งานฮอตสปอต (การเชื่อมต่อ 3 / 4G) การสลับไปใช้การเชื่อมต่อที่แตกต่างกัน (WiFi) แก้ปัญหาได้แล้ว แต่มันก็เป็นเพียงวิธีแก้ปัญหา - ฉันไม่ได้รับโอกาสที่จะได้รับที่ด้านล่างของปัญหาดังนั้นคำตอบอื่น ๆ อาจน่าสนใจมากขึ้นในการพิจารณาปัญหาพื้นฐาน


ฉันเปลี่ยนจาก WiFi เป็น 4G และใช้งานได้ ฉันก็ไม่เข้าใจเหมือนกัน
Adam Casey

4

ฉันประสบปัญหาเดียวกันและไม่สามารถหาวิธีแก้ไขได้ ฉันประสบปัญหานี้ขณะตั้งค่าเซิร์ฟเวอร์ภายในและคอมไพล์ไม่สามารถเชื่อมต่อผ่านเครือข่ายพร็อกซีของฉันได้ แต่เวิร์กสเตชันของฉันสามารถทำได้ นี่คือผลลัพธ์เมื่อฉันรันคำสั่ง 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.

ดังนั้นฉันจึงลองใช้การเชื่อมต่อ SSH ที่ทำผ่านพอร์ต HTTPS โดยแก้ไขไฟล์กำหนดค่า ~/.ssh/configแต่ไม่มีประโยชน์

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

ในที่สุดฉันพบบทความนี้ซึ่งแก้ไขและเปิดเผยปัญหาจริง

# 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

นี่คือไฟล์ปรับแต่งของฉันและตอนนี้คอมไพล์ทำงานได้ดีอย่างสมบูรณ์ผ่าน ssh!


3

ดำเนินการ:

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

ผลลัพธ์ของคุณควรมีลักษณะดังนี้:

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

ถ้าคุณได้รับ:

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

คุณต้องแก้ไขไฟล์ ~ / .ssh / config ของคุณ เพิ่มสิ่งต่อไปนี้:

Host example.com
Port 1234

5
ฉันไม่แน่ใจว่าทุกคนจะได้รับการncติดตั้ง สิ่งที่ควรจะเป็น? Netcat หรืออะไร
Hack-R

2

ฉันมีปัญหาเดียวกันนี้ แต่คำตอบที่ฉันพบแตกต่างกันคิดว่าบางคนอาจเจอปัญหานี้ดังนั้นนี่คือวิธีแก้ปัญหาของฉัน

ผมมีรายการที่อนุญาต 2 IPs สำหรับพอร์ต22, 80, 443และ9418:

  • 192.30.252.0/22

  • 185.199.108.0/22

ในกรณีที่ IP เหล่านี้ใช้งานไม่ได้อาจเป็นเพราะพวกเขาได้รับการปรับปรุงคุณสามารถค้นหาสิ่งที่เป็นปัจจุบันที่สุดในหน้านี้


0

คำตอบข้างต้นให้ข้อมูลที่จำเป็นสำหรับการแก้ไขปัญหานี้ ในกรณีของฉัน URL นั้นเริ่มต้นด้วย ssh: /// ไม่ถูกต้อง

ในการตรวจสอบ URL ในการกำหนดค่า git ของคุณให้เปิดไฟล์ git config: -

git config --local -e

ตรวจสอบรายการ URL ไม่ควรมี ssh: /// เมื่อเริ่มต้น

รายการไม่ถูกต้อง:

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

รายการที่ถูกต้อง:

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

หาก URL ของคุณถูกต้องขั้นตอนต่อไปคือลองตอบคำถามข้างต้นซึ่งแนะนำให้เปลี่ยนโปรโตคอลเป็น http


0

เมื่อฉันเปลี่ยนเป็นเครือข่าย wifi ของผู้เยี่ยมชมโดยบังเอิญฉันได้รับข้อผิดพลาดนี้ ต้องเปลี่ยนกลับไปใช้เครือข่าย wifi เริ่มต้นของฉัน


0

ฉันมีปัญหานี้เป็นเวลา 2 ชั่วโมงและปรากฎว่าการลบ "s" ออกจาก https และทำ:

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

ซ่อมมัน.


โปรดปิดคำถามนี้ที่ติดแท็กตามคำตอบ
Clément

0

ปัญหา: ขั้นตอนในการผลิตปัญหา: git clone git@github.com: sramachand71 / test.git เป็นครั้งแรกในแล็ปท็อปใหม่ ข้อผิดพลาด ssh: เชื่อมต่อกับโฮสต์ github.com พอร์ต 22: การเชื่อมต่อหมดเวลาที่ร้ายแรง: ไม่สามารถอ่านจากระยะไกล กรุ

โปรดตรวจสอบว่าคุณมีสิทธิ์การเข้าถึงที่ถูกต้องและมีที่เก็บข้อมูลอยู่ SOLUTION เป็นครั้งแรกในระบบที่จะทำการโคลนเราจำเป็นต้องใส่เครื่องหมายอัญประกาศคู่สำหรับคำสั่ง clone $ git clone "git@github.com: sramachand71 / test.git" ฉันเผชิญกับปัญหานี้ในระบบแม้ว่าทุกอย่างถูกต้อง แต่สังเกตว่าในที่สุดต้องมีการเสนอราคาซ้ำสำหรับ url "repository_url.git" เป็นครั้งแรกหรือผู้ใช้ใหม่ ในระบบ


0

การเปลี่ยน URL repo จาก ssh เป็น https นั้นไม่สำคัญสำหรับฉัน อย่างที่ฉันชอบsshมากกว่าhttpsเพราะผลประโยชน์พิเศษบางอย่างซึ่งฉันไม่ต้องการทิ้ง คำตอบข้างต้นค่อนข้างดีและถูกต้อง หากคุณประสบปัญหานี้ใน GitLab โปรดไปที่หน้าเอกสารอย่างเป็นทางการและเปลี่ยนไฟล์กำหนดค่าของคุณเช่นนั้น

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

0

รีสตาร์ทคอมพิวเตอร์แก้ไขให้ฉัน
เวอร์ชั่น Git: 2.27.0.windows.1
เวอร์ชั่น OS: Windows 10 v1909

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.