我使用的是 Ubuntu Trusty。我在决定在系统中的哪个位置配置哪些用户可以 ssh 进入机器以及他们可以使用哪些密钥时遇到了一些麻烦。
我传统上只是创建具有相应主文件夹的 Linux 用户,并将其放置authorized_keys
在 ~/.ssh 文件夹下。
似乎另一个选择是使用 sshd 的配置。您可以AllowUsers
在那里定义,甚至可以AuthorizedKeysFile
使用所有支持的 ssh 密钥。我正在使用本文以供参考。
现在,这里的最佳做法是什么?我是否不应该指定 AllowUsers/AuthorizedKeysFile 并让 OS 用户的存在和 authorized_keys 文件决定用户是否应该能够登录?我是否不应该使用用户的 ~/.ssh/authorized_keys?我应该同时使用两者吗?
前者使配置管理(在我的情况下通过 Ansible)稍微简单一些,但如果需要的话,我可以在两个地方使用它。
答案1
最常见的方式是~/.ssh/authorized_keys
,它允许用户管理自己的密钥。除非您计划将来迁移到不同的身份验证(例如 LDAP)系统,否则这应该是您的选择。
请记住,每个~/.ssh/
文件夹都需要被 chmod 为 700,并且 chown 为相应的用户。
顺便说一句,如果你管理很多用户,请查看目录useradd
上的文档/etc/skel
。你可能想.ssh/authorized_keys
在那里放一个默认值。