wra*_*ler 98 linux unix ssh bash
我们有一个堡垒服务器,我们用来连接到多个主机,我们的 .ssh/config 已经增长到一千多行(我们有数百个我们连接到的主机)。这开始变得有点笨拙,我想知道是否有办法将 .ssh/config 文件分成多个文件。理想情况下,我们会在某处指定其他文件将被视为 .ssh/config 文件,可能如下所示:
~/.ssh/config
~/.ssh/config_1
~/.ssh/config_2
~/.ssh/config_3
...
Run Code Online (Sandbox Code Playgroud)
我已阅读有关 ssh/config 的文档,但我认为这是不可能的。但也许其他人也遇到了类似的问题并找到了解决方案。
Jef*_*and 73
该~/.ssh/config文件没有包含其他文件的指令,可能与 SSH 检查文件权限有关。
围绕此问题的建议可以包括一个脚本,用于在系统上或通过存储库上的签入挂钩将多个更改集中在一起。人们可能还会研究诸如 Puppet 或 Augeas 之类的工具。
但是,无论您采用哪种方法,您都必须将单个文件从文件外部连接成单个文件。
$ cat ~/.ssh/config_* >> ~/.ssh/config
Run Code Online (Sandbox Code Playgroud)
注意: 覆盖:> vs追加:>>
2017 年 12 月更新:
从 7.3p1 及更高版本开始,有包含选项。这允许您包含配置文件。
$ cat ~/.ssh/config_* >> ~/.ssh/config
Run Code Online (Sandbox Code Playgroud)
rus*_*ush 67
您可以指定要在 ssh 选项中使用的当前配置文件,如下所示:
ssh -F /path/to/configfile
Run Code Online (Sandbox Code Playgroud)
看来这是唯一的办法了。
也无法将一个配置包含到另一个配置中。
Chr*_*don 40
从 ssh 7.3(2016 年 8 月 1 日发布)开始,提供了一个Include指令。
包含:包含指定的配置文件。可以指定多个路径名,每个路径名可以包含全局通配符和类似 shell 的“~”对用户主目录的引用。假定没有绝对路径的文件位于
~/.ssh. 一个Include指令,可能会出现内部Match或Host阻止执行条件包含。
(这是已解决的错误报告的链接,其中还包括补丁:https : //bugzilla.mindrot.org/show_bug.cgi?id=1585#c24)
Szy*_*Jeż 17
我个人使用这些命令来编译 ssh 配置:
alias compile-ssh-config='echo -n > ~/.ssh/config && cat ~/.ssh/*.config > ~/.ssh/config'
alias ssh='compile-ssh-config && ssh'
# (This will get used by other programs depending on the ~/.ssh/config)
# (If you need you can run the compile-ssh-config command via cron etc.)
Run Code Online (Sandbox Code Playgroud)
或者:
alias compile-ssh-config='echo -n > ~/.ssh/config-compilation && cat ~/.ssh/*.config > ~/.ssh/config-compilation'
alias ssh='compile-ssh-config && ssh -F ~/.ssh/config-compilation'
# (This is saver and won't over write an existing ~/.ssh/config file)
Run Code Online (Sandbox Code Playgroud)
因为:
alias ssh='ssh -F <(cat .ssh/*.config)'
Run Code Online (Sandbox Code Playgroud)
对我不起作用,返回:
ssh: Can't open user config file /dev/fd/63: Bad file descriptor
Run Code Online (Sandbox Code Playgroud)
希望这会有所帮助。
| 归档时间: |
|
| 查看次数: |
52116 次 |
| 最近记录: |