![常规 ssh 安全 - 证书认证](https://linux22.com/image/549818/%E5%B8%B8%E8%A7%84%20ssh%20%E5%AE%89%E5%85%A8%20-%20%E8%AF%81%E4%B9%A6%E8%AE%A4%E8%AF%81.png)
我已经使用过这篇文章:http://developer.apple.com/library/mac/#documentation/MacOSXServer/Conceptual/XServer_ProgrammingGuide/Articles/SSH.html为了帮助设置 ssh 证书(我在 mac os x 上)。
我看到密钥被放在一个名为的文件中authorized_keys2
。
这个文件叫什么重要吗?另外,在非个人服务器(其他人可能拥有 root 访问权限的服务器)上使用同一个authorized_keys2
文件是否安全?他们是否能够以某种方式使用该文件访问我的个人服务器?或者我是否应该为不同的服务器/服务器组使用单独的授权文件?
就拥有多个具有基于密钥的身份验证的服务器而言,是否还有其他本文未提及的良好“通用做法”?
答案1
authorized_keys2 或更常见的 authorized_keys 是默认文件名。至少在 OpenSSH 服务器上,你可以使用授权密钥文件指示:
AuthorizedKeysFile
Specifies the file that contains the public keys that can be used for user authentication. AuthorizedKeysFile may contain tokens of the form %T which are substituted during connection setup. The following tokens are defined: %% is replaced by a literal ’%’, %h is replaced by the home directory of the user being authenticated, and %u is replaced by the username of that user. After expansion, AuthorizedKeysFile is taken to be an absolute path or one relative to the user’s home directory. The default is “.ssh/authorized_keys”.
在从 SSH v1 过渡到 SSH v2 期间,authorized_keys 与 authorized_keys2 之间的区别就出现了。现在 SSH v2 是“默认标准”,因此在大多数情况下,名称已重新变为 authorized_keys。
要理解的“关键”(请原谅这个双关语)是私钥保持私密,并且仅存储在客户端计算机上。公钥可以根据访问需求发布到一台或多台服务器。这样,查看/查看/复制公钥的能力只会授予对私钥的额外访问权限,但重要的是,不能单独使用它来获取访问权限。
编辑:
我最喜欢的一系列有关基于 SSH 密钥的身份验证的文章是 IBM 几年前发布的。
- http://www.ibm.com/developerworks/library/l-keyc/index.html
- http://www.ibm.com/developerworks/library/l-keyc2/
- http://www.ibm.com/developerworks/linux/library/l-keyc3/
请记住,这些文章已经有 10 年历史了,有些内容已经发生了变化。尽管如此,它们仍然是迄今为止我发现的对所涉及的所有细微差别最全面的解释。