Ssh
為 Git 指定 SSH 埠
對於我連接的大多數伺服器,我使用非標準 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/
一些託管系統可能根本無法處理絕對路徑(儘管我傾向於將這種缺乏支持稱為錯誤)。