默认情况下,Debian和Ubuntu(至less)设置/etc/ssh/ssh_known_hosts没有读取其他人的权限。 那背后的逻辑是什么? 我不能用o+r来考虑任何安全风险,另一方面,让它公开可读对于pipe理员分发的文件是有用的。
我认为阻止访问该文件的目的是为了防止侵入系统的入侵者获取您的系统可以访问的主机列表。 类似的逻辑适用于最近默认启用的HashKnownHosts选项。 您通常不希望您的系统提供入侵者需要的所有东西来控制networking上的所有内容。
如果你只在你的/etc/ssh/ssh_known_hosts添加散列条目,我不认为它真的是一个大的交易,因为颠倒散列是不可能的。
ssh密钥不应该没有很好的理由共享。 / etc / ssh / *是适用于所有用户的configuration选项。 ssh_known_hosts文件是一种为所有login该框的用户指定已知主机列表的方法。 我相信你也可以添加条目到/home/*/.ssh/known_hosts申请一个“已知的”主机给特定的用户。 所有者拥有读取权限应该没有问题….实际上,所有用户都应该具有对该文件的读取权限。 关心的是当你申请写权限。
该文件用于识别远程服务器的指纹…所以当你ssh进入你的超级安全的服务器…你实际上ssh'ing到你的服务器…而不是一个黑客拥有的其他服务器是玩中间人。
如果这仍然发生,那么这似乎是一个错误。 当ssh读取这个文件的时候会使用用户权限,所以如果它不是世界上可读的,那么它根本就没有任何作用。
我只是testing身份证。 如果我将/ etc / ssh / ssh_known_hosts权限设置为600,则ssh会显示“主机的真实性…无法build立”。
如果将其设置为644,则可以在没有提示的情况下login到远程服务器。