为什么SSH在〜/ .ssh / config中检查configuration文件的权限,而不是在其他地方?

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

我感到困惑的是,如果我把同样的configuration文件somwhere其他 – 比如说~/tmp/ssh_config – 然后运行ssh -F ~/tmp/ssh_config -F〜 ssh -F ~/tmp/ssh_config ,权限不会被检查! 这发生在OSX上。

为什么? 为什么SSH会关心一个地方的权限,而不是另一个呢?

如果我猜测这个,我build议当ssh客户端使用默认位置的configuration时,启动连接的用户并不真正意识到正在使用configuration文件。 有一个隐含的假设,即configuration文件没有被篡改。 如果权限过于宽松,那么这可能意味着用户正在相信默认configuration是安全的。

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