錯誤訊息
Mac 上的 ssh: connect to host port 22: Operation timed out
ssh 向連接埠 22 送出連線請求,卻沒有得到回應。在 Mac 上,系統的錯誤文字是「Operation timed out」;Linux 則顯示「Connection timed out」。
症狀
- 終端機顯示
ssh: connect to host github.com port 22: Operation timed out。 - 接著 Git 會顯示
fatal: Could not read from remote repository. - SSH 在另一個網路上可以用,例如你家裡的網路。
可能原因
- 網路封鎖了連接埠 22。公司、學校、飯店和公共網路經常封鎖 SSH。GitHub 表示,防火牆有時會拒絕 SSH 連線。
- IPv6 路徑故障。Mac 會先嘗試 IPv6,而 IPv6 無法運作。
- VPN 或代理伺服器。流量經過一個不放行 SSH 的 VPN。
- 伺服器停機或被過濾。伺服器在連接埠 22 上沒有回應。
如何檢查
單獨測試 TCP 連接埠,逾時設為 5 秒。
nc -vz -G 5 github.com 22只試 IPv4。
ssh -4 -T git@github.com如果是 GitHub,測試連接埠 443 上的 SSH。
ssh -T -p 443 git@ssh.github.com以詳細模式連線。最後幾行會顯示它停在哪裡。
ssh -vT git@github.com
如何修正
如果連接埠 443 可以用,就對 GitHub 改用它。將這個區塊加入
~/.ssh/config。Host github.com Hostname ssh.github.com Port 443 User git如果只有 IPv4 可以用,在
~/.ssh/config中該主機的區塊加入AddressFamily inet。作為測試,改用儲存庫的 HTTPS URL。
如果是你自己的伺服器,請網路管理者放行它的 SSH 連接埠。
使用 Kilobat
Kilobat 的連線診斷會逐層測試主機:網路、代理伺服器、DNS、規則、IPv4、IPv6、TLS 和伺服器,並指出失敗的是哪一層。
kilobat why github.com這些 Kilobat 檢查都是免費的。AI 代理程式可透過 MCP 以
diagnose_connection和diagnose_network執行。請參閱找出某個網站或 API 連不上的原因。
常見問題
為什麼我的 Mac 顯示 Operation timed out,而不是 Connection timed out?
ssh 會印出系統對這個錯誤的文字。在 macOS 上,ETIMEDOUT 的文字是「Operation timed out」。
資料來源
- GitHub Docs:Using SSH over the HTTPS port
- ssh(1)、ssh_config(5) 與 nc(1),macOS 27.2 內建的 man 頁面
- intro(2),ETIMEDOUT,macOS 27.2 內建的 man 頁面
資料來源檢查日期:2026年10月29日。man 頁面為 macOS 內建版本;在終端機中用 man <name> 開啟。