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

awe*_*ndt 4 ssh mac-osx

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

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

为什么?为什么 SSH 会关心一个位置的权限而不关心另一个位置?

Zor*_*che 5

如果我对此进行猜测,我会建议当 ssh 客户端使用来自默认位置的配置时,启动连接的用户并不真正意识到正在使用配置文件。有一个隐含的假设,即配置文件未被篡改。如果权限过于宽松,则可能意味着用户信任默认配置是安全的,而实际上并非如此。

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