ssh: kết nối với máy chủ github.com cổng 22: Đã hết thời gian kết nối


174

Tôi đang ở dưới một proxy và tôi đang cố gắng git thành công trong một thời gian khá lâu.
Bây giờ tôi không thể đột nhiên vào git.
Tôi đã đặt khóa RSA và proxy và kiểm tra lại chúng, không có kết quả và git đang ném cho tôi lỗi hiển thị trong tiêu đề của trang.


6
Tạo một điểm nóng trên thiết bị di động của bạn, sau đó kết nối qua thiết bị di động của bạn git push. Đã làm cho tôi.
zundi


1
Vấn đề tương tự cũng xảy ra với tôi ở Anh với Virgin Media. Tôi đã cố gắng đẩy / kéo đến GitHub thông qua ssh ở nhà và không có may mắn nhưng trong công việc vẫn ổn. Vì vậy, tôi nhận ra rằng tôi có vấn đề với ISP của tôi. Cách khắc phục đơn giản đối với tôi là sử dụng DNS Cloudflare 1.1.1.1thay vì mặc định đó là lý do tại sao @zundi thành công thông qua một điểm truy cập di động.
Vladyslav Krylasov

Câu trả lời:


254

Lý do có thể là sửa đổi tường lửa như bạn đang ở trong một mạng. (Trong trường hợp đó, họ có thể cố tình chặn một số cổng)
Để kiểm tra lại nếu đây là lý do ... làm

ssh -T git@github.com

Điều này nên hết thời gian. Nếu đó là trường hợp sử dụng giao thức http thay vì ssh theo cách này,
chỉ cần thay đổi url của bạn trong tệp cấu hình thành http.
Đây là cách thực hiện: -

git config --local -e

thay đổi mục nhập của

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

đến

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

6
Tôi đã có vấn đề đó một lần, nhưng khởi động lại máy tính của tôi đã giải quyết nó.
Kevin Lee

3
gây tử vong: không thể truy cập ' gitlab.com : ******. git /': Số cổng kết thúc bằng 'f'
Fakher

Tôi đã phải xóa .git khỏi url để làm việc này cho tôi. url = github.com/username/repo
Jesse Buss

4
sử dụng https thay cho ssh không phải là giải pháp phù hợp. Phải có cách đặt proxy trong cấu hình git và trong cài đặt ssh để giải quyết vấn đề này.
shijin

5
Virgin Media UK có chế độ an toàn cho trẻ em mà tôi phải tắt.
Finlay Percy

178

Đối với trường hợp của tôi, không có giải pháp được đề xuất nào hoạt động nên tôi đã cố gắng tự khắc phục và tôi đã giải quyết được.

Đối với tôi, tôi đang gặp lỗi này trên phiên bản AWS EC2 UBUNTU của mình, điều tôi đã làm để giải quyết nó là chỉnh sửa cấu hình ssh (hoặc thêm nó nếu nó không tồn tại).

sudo nano ~/.ssh/config

Và tôi đã thêm vào như sau

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

Sau đó, chạy lệnh ssh -T git@github.comđể xác nhận nếu sự cố được khắc phục.

Theo đó

Đôi khi, tường lửa từ chối cho phép kết nối SSH hoàn toàn. Nếu sử dụng nhân bản HTTPS với bộ đệm ẩn thông tin xác thực không phải là một tùy chọn, bạn có thể cố gắng sao chép bằng kết nối SSH được thực hiện qua cổng HTTPS. Hầu hết các quy tắc tường lửa nên cho phép điều này, nhưng máy chủ proxy có thể can thiệp

Hy vọng rằng điều này sẽ giúp bất cứ ai khác có cùng vấn đề với tôi.


3
Giải pháp này hoạt động tốt với tôi, mặc dù nó không giải quyết được vấn đề cho GitLab. Trong trường hợp đó, vui lòng xem xét rằng GitLab.com chạy máy chủ SSH thứ hai lắng nghe trên cổng 443 thường được sử dụng, không có khả năng bị tường lửa. Tất cả bạn phải làm là chỉnh sửa của bạn ~/.ssh/configvà thay đổi cách bạn kết nối với GitLab.com. Trong trường hợp đó, hãy xem bài viết này: about.gitlab.com/2016/02/18/ từ
lucascavalcante

1
Xin chào, tôi có một vấn đề tương tự, bộ định tuyến của tôi là từ NET và anh ta chặn cổng 22. Cấu hình đó đã giải quyết vấn đề của tôi chắc chắn
Pedro Soares

Nó không phải là gitcấu hình mà là sshcấu hình
GuyT

1
Sau nhiều giờ tìm kiếm anwers ... bạn là CHAMP, dù sao tại sao chúng ta cần thay đổi github.com thành ssh.github.com? Tôi vẫn không hiểu
Robert Tirta

45

Viết lại URL cơ bản

Git cung cấp cách viết lại URL bằng git config. Đơn giản chỉ cần ban hành lệnh sau:

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

Bây giờ, như thể bằng phép thuật, tất cả các lệnh git sẽ thực hiện thay thế git://chohttps://

nguồn: git: // giao thức bị chặn bởi công ty, làm thế nào tôi có thể khắc phục điều đó?


1
Cảm ơn! Của chúng tôi là trong quá trình xây dựng Jenkins vì vậy tôi không thể chỉnh sửa thủ công tệp git (tôi không có thông tin git cho tài khoản jenkins) - vì vậy điều này rất hữu ích.
Phil

1
Điều đó thật tuyệt. Tôi đã thêm bí danh git cho từng cái để dễ dàng chuyển đổi
lfender6445

17
Liên quan đến github, lệnh nên là : git config --global url."https://github.com/".insteadOf git@github.com:. Lưu ý sự khác biệt: @trở thành //:trở thành /.
Frodon

20

bên trong thư mục .ssh Tạo tập tin "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
Xem câu trả lời của Mahan_F để được giải thích chi tiết về lý do tại sao điều này xảy ra.
refaelio

1
Đây là điều duy nhất làm việc cho tôi trên GitLab. Cảm ơn, Ê-sai!
awwsmm

5

Giải pháp nhanh: thử chuyển sang một mạng khác

Tôi gặp sự cố này khi đang sử dụng điểm phát sóng (kết nối 3 / 4G). Chuyển sang một kết nối khác (WiFi) đã giải quyết nó, nhưng đó chỉ là một cách giải quyết - Tôi không có cơ hội đi đến tận cùng của vấn đề để các câu trả lời khác có thể thú vị hơn để xác định vấn đề tiềm ẩn


Tôi đã chuyển từ WiFi sang 4G và nó đã hoạt động. Tôi cũng không hiểu.
Adam Casey

4

Tôi đã đối mặt với cùng một vấn đề và không thể tìm ra giải pháp làm việc. Tôi đã gặp phải vấn đề này trong khi thiết lập một máy chủ cục bộ và git không thể kết nối qua mạng proxy của tôi nhưng máy trạm của tôi thì có thể. Đây là đầu ra khi tôi chạy lệnh 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.

Vì vậy, tôi đã thử sử dụng kết nối SSH được thực hiện qua cổng HTTPS bằng cách chỉnh sửa tệp cấu hình ~/.ssh/confignhưng không có kết quả.

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

Cuối cùng, tôi tìm thấy bài viết này đã giải quyết và phơi bày vấn đề thực sự.

# 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

Đây là tập tin cấu hình của tôi và bây giờ git hoạt động hoàn toàn tốt thông qua ssh!


3

Hành hình:

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

Đầu ra của bạn sẽ giống như:

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

Nếu bạn nhận được:

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

Bạn cần chỉnh sửa tập tin ~ / .ssh / config của bạn. Thêm một cái gì đó như sau:

Host example.com
Port 1234

5
Tôi không chắc mọi người sẽ nccài đặt. Đó là cái gì? Netcat hay cái gì?
Hack-R

2

Tôi đã có cùng một vấn đề, nhưng câu trả lời tôi tìm thấy là khác nhau, nghĩ rằng ai đó có thể gặp phải vấn đề này, vì vậy đây là giải pháp của tôi.

Tôi đã phải whitelist 2 IP cho các cổng 22, 80, 443, và 9418:

  • 192.30.252.0/22

  • 185.199.108.0/22

Trong trường hợp các IP này không hoạt động, có thể là do chúng đã được cập nhật, bạn có thể tìm thấy những cái mới nhất trên trang này .


0

Câu trả lời ở trên đã cho tôi thông tin cần thiết để giải quyết vấn đề này. Trong trường hợp của tôi, url đã bắt đầu không chính xác bằng ssh: ///

Để kiểm tra url trong cấu hình git của bạn là chính xác, hãy mở tệp cấu hình git: -

git config --local -e

Kiểm tra mục nhập url. Nó KHÔNG nên có ssh: /// khi bắt đầu.

Nhập sai:

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

Nhập đúng:

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

Nếu url của bạn là chính xác, thì bước tiếp theo sẽ là thử câu trả lời ở trên gợi ý thay đổi giao thức thành http.


0

Khi tôi vô tình chuyển sang mạng wifi khách, tôi đã gặp lỗi này. Phải chuyển về mạng wifi mặc định của tôi .


0

Tôi đã gặp vấn đề này trong 2 giờ và hóa ra việc xóa "s" khỏi https và chỉ cần làm:

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

Đã sửa nó.


Vui lòng đóng câu hỏi này gắn thẻ câu trả lời
Clément

0

VẤN ĐỀ: Bước đến vấn đề sản xuất: git clone git@github.com: sramachand71 / test.git cho lần đầu tiên trong máy tính xách tay mới LỖI ssh: kết nối với máy chủ github.com cổng 22: Kết nối đã hết thời gian chết người: Không thể đọc từ xa kho.

Vui lòng đảm bảo rằng bạn có quyền truy cập chính xác và kho lưu trữ tồn tại. GIẢI PHÁP lần đầu tiên trong hệ thống để sao chép, chúng ta cần đưa ra dấu ngoặc kép cho lệnh clone. $ git clone "git @ trong hệ thống.


0

Thay đổi url repo từ ssh sang https không có ý nghĩa lắm đối với tôi. Vì tôi thích sshhơn httpsvì một số loại lợi ích bổ sung mà tôi không muốn loại bỏ. Câu trả lời trên là khá tốt và chính xác. Nếu bạn gặp phải vấn đề này trong GitLab, vui lòng truy cập trang tài liệu chính thức của họ và thay đổi tệp cấu hình của bạn như thế.

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

0

Khởi động lại máy tính đã giải quyết nó cho tôi.
Phiên bản Git: 2.27.0.windows.1
Phiên bản hệ điều hành: Windows 10 v1909

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.