我有 3 个人,3 台 Windows 机器和 1 台 ubuntu 12.04 服务器。我创建了每个用户帐户并将其添加到 sudo 组。我已将公钥直接从 puttygen 复制到 authenticated_keys 文件中。
我想知道如何告诉每个密钥允许特定用户进入。所有密钥都以 rsa-ssh“date”结尾。当我想让一个密钥为一个帐户工作时,所有密钥都适用于我的帐户,但不适用于任何其他帐户。
我尝试在 authenticated_keys 文件中的密钥末尾添加 user@computername,但没有成功。我只是得到没有可用的支持的身份验证方法。
我在谷歌上搜索过,但找不到简单的解释。
感谢您的任何帮助。
答案1
您必须将 ssh 公钥复制到每个用户帐户。否则,密钥仅适用于您的帐户。
〜/.ssh /授权密钥
列出可用于以以下身份登录的公钥 (DSA/ECDSA/RSA)此用户。
因此,每个使用密钥登录的用户都需要每个用户各自的密钥~/.ssh/authorized_keys
。
有关的
答案2
您希望 Linux 中的 SSH 服务器接受传入请求。因此,存在一个文件,其中包含该特定用户的所有可接受公钥(!):~/.ssh/authenticate_keys
另外:因为我们需要在连接接受系统上本地获取密钥。以某种方式(例如使用带密码验证的 SCP 连接)将公钥部分(末尾带有 -pub)复制到目录中~/.ssh
!
以下内容针对 Linux 系统中的每个用户进行。因此,对于初学者来说,最好是分别登录每个用户并执行这些步骤。更有经验的用户只需登录一次并更改用户 ID...
开始你的工作循环:
因此登录到用户1:
检查'.ssh'目录是否存在,如果不存在则自己创建'.ssh'目录:mkdir ~/.ssh
在 ~/.ssh/authenticate_keys 中,每行都有一个公钥(!)。因此,如果您使用“cat”进入其中,请使用“>>”不覆盖内容并在末尾添加(如果此文件之前不存在,则无关紧要,它将自动创建):例如
cat id_rsa.user1.pub >>~/.ssh/authenticate_keys
然后,拥有正确的用户权限非常重要(如果没有,SSL 将拒绝接受密钥,因此这很重要!):
==> 目录本身
chmod 700 ~/.ssh
==> 和公钥文件
chmod 600 ~/.ssh/authenticate_keys
您已完成“user1”的操作,注销并使用“user2”登录...重复并用“user2”键替换“user1”...