如何为 root 和普通用户使用相同的 SSH 配置?

如何为 root 和普通用户使用相同的 SSH 配置?

这是一个特例一个现有的问题

我有一个 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。对我来说,它成功了。

相关内容