Linux
你可以有多個 ~/.ssh/config 文件嗎?
我們有一個堡壘伺服器,用於連接到多個主機,我們的 .ssh/config 已經增長到超過一千行(我們連接到數百個主機)。這開始變得有點笨拙,我想知道是否有辦法將 .ssh/config 文件分成多個文件。理想情況下,我們會在某個地方指定其他文件將被視為 .ssh/config 文件,可能像:
~/.ssh/config ~/.ssh/config_1 ~/.ssh/config_2 ~/.ssh/config_3 ...
我已經閱讀了關於 ssh/config 的文件,但我認為這是不可能的。但也許其他人遇到了類似的問題並找到了解決方案。
該
~/.ssh/config
文件沒有包含其他文件的指令,可能與 SSH 檢查文件權限有關。圍繞這一點的建議可以包括一個腳本,用於在系統上或通過儲存庫上的簽入掛鉤將多個更改集中在一起。人們還可以研究諸如 Puppet 或 Augeas 之類的工具。
但是,無論您如何處理它,您都必須將各個文件連接為來自文件外部的單個文件。
$ cat ~/.ssh/config_* >> ~/.ssh/config
注意: 覆蓋:
>
vs追加:>>
2017 年 12 月更新:
從 7.3p1 及更高版本開始,有包含選項。它允許您包含配置文件。
Include Include the specified configuration file(s). Mul‐ tiple pathnames may be specified and each pathname may contain glob(3) wildcards and, for user config‐ urations, shell-like “~” references to user home directories. Files without absolute paths are assumed to be in ~/.ssh if included in a user con‐ figuration file or /etc/ssh if included from the system configuration file. Include directive may appear inside a Match or Host block to perform con‐ ditional inclusion.