将公共 ssh 密钥添加到用户的authorized_keys中

将公共 ssh 密钥添加到用户的authorized_keys中

我必须解决运行 Arch Linux 的服务器上发生的问题。另一个开发人员向我发送了一封电子邮件,其中包含以 root 用户身份进行访问的密钥,并给我写了这样的内容:“您应该以 root 身份登录,上传您的公共 ssh 密钥并将其添加到 xxx 用户的授权密钥中”。

他创建了一个用户来运行节点应用程序。我有公钥文件,我需要将其添加到authorized_keys他用来运行应用程序的用户中,这样我就可以作为该用户进行 ssh。

我的问题是我不知道执行此操作的命令。我想知道如何使用本地计算机中的文件来执行此操作,或者仅从根目录复制authorized_keys。

答案1

将您的密钥发送到 ,/tmp然后将其附加到authorized_keys
替换这些命令中的SERVERand :USER

scp ~/.ssh/id_rsa.pub root@SERVER:/tmp/id_andre_luiz
ssh root@SERVER
cat /tmp/id_andre_luiz >> ~/.ssh/authorized_keys

请小心使用>>(而不仅仅是单个>)来附加到authorized_keys文件而不是覆盖它。

答案2

我这样做:

cat <your_public_key_file> >> ~/.ssh/authorized_keys

请注意,如果没有 double >,authorized_keys 的现有内容将被覆盖(破坏!),这可能是不可取的。

答案3

帮助程序完全按照您的要求执行,并且作为一个令人高兴的好处,如果目录和文件不存在,它ssh-copy-id还将创建并保护它们,或者如果存在,则简单地将密钥附加到现有文件。~/.ssh/authorized_keys

更好的是,它会检查该密钥是否已经存在,并保护您免受重复:

shadur@periapsis:~$ ssh-copy-id -i .ssh/id_ed25519.pub luminosity
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: ".ssh/id_ed25519.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed

/usr/bin/ssh-copy-id: WARNING: All keys were skipped because they already exist on the remote system.
        (if you think this is a mistake, you may want to use -f option)

该帮助程序将在任何可以通过 ssh 到达目标系统并且具有您想要添加的公钥的地方运行,这实际上是您想要执行此操作的任何地方。

相关内容