在SSH服务器上,我有以下(截断)configuration:
PubkeyAuthentication yes PasswordAuthentication yes
在我的客户端,我有一个密钥对,并在服务器上添加了我的公钥:
ssh-copy-id <my-server>
现在,如果我将PasswordAuthentication选项更改为no ,连接到我的SSH服务器的唯一方法是validation密钥,对吧?
那么,如果我想添加一个新的客户端,我需要:
PasswordAuthentication选项,并使用新客户端的ssh-copy-id ~/.ssh/authorized_keys从已经授权的客户端复制/粘贴到服务器的~/.ssh/authorized_keys中。 但是我觉得这些方法很无聊。
问题:是否有更简单的方法将新密钥添加到服务器上的~/.ssh/authorized_keys文件中?
您可以修改新用户的authorized_keys文件,就像系统上的任何其他文件一样。 您不需要使用用户的帐户。 任何具有写入权限的账户都可以。 即通常是root帐户(或sudo )。
ssh-copy-id只是通过为你创build所有的文件夹和文件,具有正确的权限而简化了这个过程。 当你手动完成这个工作时,你需要自己确保所有这一切。
从根本上说,对你的每一个问题的答案是肯定的。 无论您是否觉得这种方法“无聊”,这是允许访问新客户的一种可接受的方式。
添加新密钥的另一种方法是使用现有的客户端将公钥的内容从新客户端复制并粘贴到目标机器上有问题的用户的~/.ssh/authorized_keys文件中 – 确保权限和所有权设置正确。 这避免了临时允许使用密码进行authentication的需要(无论如何,这将需要中继给尝试ssh-copy-id操作的用户)。