首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Git 首次連線 GitHub 失敗:Socket operation on non-socket 完整排查指南

     編輯:程式設計綜合問答

錯誤現象

$ ssh git@github.com
socket: Socket operation on non-socket
ssh: connect to host github.com port 22: Socket operation on non-socket

核心檢查清單

  1. SSH 金鑰對是否生成
    ls -la ~/.ssh/id_rsa*
    # 應存在 id_rsa (私鑰) 與 id_rsa.pub (公鑰)
    # 若無,執行:ssh-keygen -t ed25519 -C "your_email@example.com"
    
  2. 公鑰已加入 GitHub
    • 複製 cat ~/.ssh/id_rsa.pub 內容。
    • GitHub → Settings → SSH and GPG keys → New SSH key → 貼上。
  3. SSH Agent 是否運行並載入私鑰
    eval "$(ssh-agent -s)"
    ssh-add ~/.ssh/id_rsa
    
  4. 網路/防火牆/Proxy 設定
    • 嘗試 ssh -T -v git@github.com 觀察詳細握手過程。
    • 若在企業網路,需設定 ~/.ssh/config 走 ProxyCommand。
  5. Known Hosts 檔案衝突
    • 刪除 ~/.ssh/known_hosts 中 github.com 舊紀錄,重新連線接受新指紋。

常見誤區

  • 以為 ssh git@github.com 失敗即代表金鑰未授權,實則可能是連線層級(TCP/SSL)就未建立。
  • Windows 使用者若用 Git Bash,確保 HOME 環境變數指向正確 .ssh 目錄。

驗證成功標準

$ ssh -T git@github.com
Hi username! You've successfully authenticated, but GitHub does not provide shell access.

依序排查上述項目,90% 以上連線問題可迎刃而解。若仍無法連線,請貼上 ssh -vvv git@github.com 完整日誌尋求協助。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved