SSH 密钥文件应存储在哪里才能符合 FHS 标准?

SSH 密钥文件应存储在哪里才能符合 FHS 标准?

我一直在阅读 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因为它对于每个用户来说都应该是唯一的。

相关内容