Ssh

為 Git 指定 SSH 埠

  • December 25, 2021

對於我連接的大多數伺服器,我使用非標準 ssh 埠 (1234)。所以在我的 ssh 配置文件中,我有:

Port 1234

但是 github.com 使用埠 22。當我嘗試連接到 github 時,它顯然會嘗試使用埠 1234。現在我必須編輯我的 ssh 配置才能讓事情正常工作。

這是我的 git 配置中的一個片段:

[remote "origin"]
       url = git@github.com:asdf/asdf.git

看看如何正確設置*~/.ssh/config*文件(man 5 ssh_config)。您可以輕鬆地為不同的主機指定不同的設置。為了解決您的問題,您將設置

Host github.com
Port 22
Host *
Port 1234

請查看 ssh_config 手冊頁,它在前幾頁中解釋了您需要了解的所有內容。

在其中設置一個部分~/.ssh/config是一個很好的解決方案,但了解另一種方法可能會很有用。

常見的類似scp的語法user@host:path沒有埠的位置,但 Git 還支持ssh:可用於指定埠的 URL 方案:

ssh://git@github.com:22/asdf/asdf.git

雖然ssh:URL 支持埠規範,但它不支持相對路徑(例如,沒有與不以斜杠開頭的 scp 類似的語法的直接等價物*)*。user@host:path``path

GitHub 對相對路徑和絕對路徑的處理方式相同,因此它適用於它們,但它可能不適用於所有基於 SSH 的 Git 儲存庫。對於簡單的基於 SSH 的託管,您可能需要在從相對路徑切換到絕對路徑時插入/home/username/或。/Users/username/一些託管系統可能根本無法處理絕對路徑(儘管我傾向於將這種缺乏支持稱為錯誤)。

引用自:https://serverfault.com/questions/218256