我们正在使用默认情况下使用 ssh 密钥进行身份验证的 Amazon EC2 服务器。我们想向服务器中的另一个用户授予访问权限,但我们不想提供我们的初始密钥,因此我们想创建第二个密钥,以便稍后删除。有没有办法接受多个密钥?
这篇文章对设置第一个键很有帮助。
我们正在使用默认情况下使用 ssh 密钥进行身份验证的 Amazon EC2 服务器。我们想向服务器中的另一个用户授予访问权限,但我们不想提供我们的初始密钥,因此我们想创建第二个密钥,以便稍后删除。有没有办法接受多个密钥?
这篇文章对设置第一个键很有帮助。
您可以为每个用户帐户配置多个授权密钥。只需以相同的方式创建公钥/私钥对,除了最后运行以下命令:
其中 id_rsa.pub 是创建新密钥的任何文件名。现在,如果您查看 authorized_keys 文件,您将看到列出的两个公钥,每行一个。
需要明确的是,这将允许使用两个密钥登录同一个用户帐户。如果您只是希望此人对系统具有可审核的访问权限,我建议您创建一个新用户。虽然仍然使用公钥进行访问。
使用 puttygen,生成一个密钥。我个人使用 RSA、SSHv2 密钥 @ >2048 位,但这是您的选择。
接下来在 puttygen 中找到可以让您导出 OpenSSH 公钥和私钥对的函数。获取公钥并将其附加到服务器上 ~/.ssh/authorized_keys 的末尾,确保删除之前附加的任何非 OpenSSH 格式的密钥(即您在之前的评论中提到的 Putty 密钥)。
为您希望能够登录服务器的不同密钥多次执行此操作。您本地机器上的 Pagent 拥有私钥,但它可能想要读取 .PPK 文件而不是您导出的私钥文件。
请注意,一旦其中一个用户登录,他们可以更改authorized_keys 文件并锁定另一个用户。换句话说,这不是一个以安全为中心的设置,而且您无能为力。您唯一的选择是查看限制用户可以运行的命令而不给他们一个 shell(“man authorized_keys”并搜索讨论“command=”和“no-pty”的部分),或者询问服务器的系统管理员重新定位 authorized_keys 所在的位置(/etc/ssh/sshd_config 中的 AuthorizedKeysFile 设置)。
如果做不到这一点,请给两个用户一个单独的登录名,并充分利用服务器的用户/组文件所有权 ACL。老实说,这可能是最好的......