为什么 SSH 检查 ~/.ssh/config 中的配置文件的权限,而不检查其他地方的权限?

为什么 SSH 检查 ~/.ssh/config 中的配置文件的权限,而不检查其他地方的权限?

我有一个.ssh/config-rw-rw-r--我知道你应该chmod 600。这不是我的问题。

让我感到困惑的是,如果我将相同的配置文件放在其他地方 — 比如~/tmp/ssh_config— 然后运行ssh -F ~/tmp/ssh_config​​,则不会检查权限!这发生在 OSX 上。

这是为什么?为什么 SSH 关心某个位置的权限,而不关心另一个位置的权限?

答案1

如果让我猜测一下,我认为当 ssh 客户端使用默认位置的配置时,发起连接的用户实际上并不知道正在使用配置文件。有一个隐含的假设,即配置文件没有被篡改。如果权限太宽松,那么这可能意味着用户相信默认配置是安全的,但事实并非如此。

当您使用该选项引用配置文件时-F,您明确表示您想要该配置文件。您基本上是在告诉客户端,您知道自己想要什么,而该配置文件就是它。您有责任知道自己在做什么。有一些有效的用例,一群人可能希望为一组公共服务器共享一个公共配置文件。

相关内容