我一直在阅读 FHS 规范http://www.pathname.com/fhs/pub/fhs-2.3.html确定应将 (私有) SSH 密钥文件存储在哪里,该文件将用于我目前正在处理的 VPS 管理面板。此密钥文件应仅供主服务器 (放置它的服务器) 使用,并将用于通过 SSH 隧道传输 libvirt 通信。
据我理解,这意味着密钥文件应存储在 的子目录中/etc
,因为它是静态的且特定于主机的。这是正确的吗?
答案1
我所在的系统使用/etc/ssl/certs
证书和/etc/ssl/private
密钥。/etc/ssl/private
目录的保护级别为 710。Root 拥有目录,而组只有知道密钥名称才能访问密钥。谨慎使用组和权限可以让非 root 用户更精细地访问密钥。
编辑:正如@UtahJarhead 指出的那样,SSH 不是 SSL(TLS)。SSH 通常不会出现任何有关密钥放置的问题,因为它们是由工具放置的。这两种方法都可用于保护访问。SSL/TLS 使用 CA(证书颁发机构)签名的证书,存储方式如上所述。
SSH 使用未签名的证书。服务器(主机)的密钥存储在 /etc/ssh 中,该密钥具有 600 权限,仅允许 root 读取访问。这些是在安装守护进程时生成和安装的。客户端/用户密钥存储在 ~/ssh(又名 $HOME/ssh)中,所有标准工具都会将它们放置在相应位置。当复制公钥以进行无密码访问时,它也会存储在目标系统上目标用户的 ~/ssh 中。
答案2
恕我直言:
/etc
会告诉你在哪里可以找到钥匙。
/usr/local
或者/var
树可能是更好的方法或者~/.ssh
对相应的用户来说。
答案3
私有 ssh 密钥可能不是主机特定的。单个 ssh 密钥对可用于将用户连接到无限数量的主机。ssh 密钥需要能够基于每次登录进行引用。在 中sshd_config
有一个AuthorizedKeysFile
设置私钥存储位置的文件。如果您有兴趣将其保存在 中/etc
,这是可行的,但是根据 FHS 指南,它不是“主机特定的系统配置”。它似乎最适合默认位置,/home/${USER}/.ssh/authorized_keys
因为它对于每个用户来说都应该是唯一的。