簡體   English   中英

ssh:連接到主機端口 22:連接超時

[英]ssh: connect to host port 22: Connection timed out

在我的新工作計算機上安裝 git 后,生成我的 ssh 密鑰並將其添加到 gitlab 上,我正在嘗試克隆一個項目,但出現以下錯誤:

ssh: connect to host <private-domain>.com port 22: Connection timed out
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

我還嘗試了使用詳細選項測試 ssh 連接的命令,我得到了這個:

$ ssh -Tvvv appgit@<private_domain>.com
OpenSSH_8.8p1, OpenSSL 1.1.1m  14 Dec 2021
debug1: Reading configuration data /etc/ssh/ssh_config
debug3: expanded UserKnownHostsFile '~/.ssh/known_hosts' -> '/h/.ssh/known_hosts'
debug3: expanded UserKnownHostsFile '~/.ssh/known_hosts2' -> '/h/.ssh/known_hosts2'
debug2: resolving "<private_domain>.com" port 22
debug3: resolve_host: lookup <private_domain>.com:22
debug3: ssh_connect_direct: entering
debug1: Connecting to <private_domain>.com [<serv.ip.add.ress>] port 22.
debug3: set_sock_tos: set socket 4 IP_TOS 0x48
debug1: connect to address <serv.ip.add.ress> port 22: Connection timed out
ssh: connect to host <private_domain>.com port 22: Connection timed out

我知道域存在, ping <private-domain>.com有效。 我認為這不是代理問題,因為我沒有連接 http 或 https。

這個答案中的任何修復都沒有改變任何東西。 (我在 Windows 上)


我注意到,如果我刪除~/.ssh文件夾中的密鑰,我會收到同樣的錯誤,這讓我認為這是一個關鍵問題,而不是網絡問題。 我如何確定 git 使用的是正確的密鑰?

我試過ssh-keygen -lf ~/.ssh/id_rsa -E md5來查看指紋是否與 gitlab 上的指紋匹配(確實如此),但這只會給我文件夾中的指紋,不一定是 git 使用的指紋。 Git-gui Help>Show SSH Key確實正確顯示了我的密鑰。

仔細檢查:

  • 遠程服務器至少在端口 22 上應答

     curl -v telnet://<private_domain>.com:22

connect to address <serv.ip.add.ress> port 22: Connection timed out部分似乎表明遠程服務器沒有監聽,或者本地服務器阻止任何出口 SSH 連接)

  • 遠程 GitLab 服務器確實配置了一個名為appgit的技術帳戶:通常使用的默認帳戶是git
    以防萬一,用ssh -Tvvv git@<private_domain>.com再次測試

並確保您的密鑰使用默認命名方案(如~/.ssh/id_rsa[.pub]

如果您使用的是在自定義域上運行的 gitlab,您可以執行以下操作

  • 通過執行 ssh-add 將您的 git 私鑰添加到本地計算機上的 ssh-agent
  • 將以下配置文件添加到您當前的用戶主目錄。 (~/.ssh/config,相應地更新參數)

Host gitlab
    HostName mycustomgitlabdomain.com
    User my-git-user
    IdentityFile ~/.ssh/my_private_key



此外,檢查以下

  • 您可以使用任何用戶在遠程服務器上執行 SSH 嗎?
  • 檢查防火牆規則,如果那里有任何阻塞
  • 通過將域名替換為 IP 地址來檢查訪問
  • 檢查遠程服務器的 SSH 端口(可能 SSH 服務可能配置為在不同端口上運行)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM