这是一个特例一个现有的问题。
我有一个 SSH 配置~/.ssh/config
。每次在网络上安装新计算机时,我都会更新它,因为我有许多特定于主机的配置。我希望 root 用户使用相同的配置,但我还没有找到一个好的方法来设置它。
一种可能性是有一个“包含”语句,其中/root/.ssh/config
包含~/.ssh/config
.这是我在其他程序中使用的一种技术。然而,SSH 软件阻止了这种情况:
$ sudo cat /root/.ssh/config
Include /home/joe/.ssh/config
$ sudo ssh myhost.local
Bad owner or permissions on /home/joe/.ssh/config
还禁止创建硬链接或符号链接:
$ sudo ln -f ~joe/.ssh/config /root/.ssh/config
$ sudo ssh myhost.local
Bad owner or permissions on /root/.ssh/config
所以我决定复印一份:
$ sudo rm /root/.ssh/config
$ sudo cp ~joe/.ssh/config /root/.ssh/config
$ sudo ssh myhost.local
Warning: Permanently added 'myhost.local' (ECDSA) to the list of known hosts.
...
但是当我更新配置时我忘记执行此操作,然后我的备份开始中断,因为备份脚本以 root 身份运行 rsync/ssh,等等。
有没有更好的方法来与 root 共享我的 ssh 配置?
答案1
您可以使用/etc/ssh/config
这些配置。它是一个系统范围的 ssh 客户端配置文件,将由 root 和您的用户(以及系统中的所有其他用户)读取。
请注意,~/.ssh/config
优先于/etc/ssh/config
。因此,您必须从~root/.ssh/config
和中删除 root 和您的用户共享的通用配置~/.ssh/config
。
答案2
系统范围的 ssh 配置路径是/etc/ssh/ssh_config
对于Ubuntu。对我来说,它成功了。