我必须解决运行 Arch Linux 的服务器上发生的问题。另一个开发人员向我发送了一封电子邮件,其中包含以 root 用户身份进行访问的密钥,并给我写了这样的内容:“您应该以 root 身份登录,上传您的公共 ssh 密钥并将其添加到 xxx 用户的授权密钥中”。
他创建了一个用户来运行节点应用程序。我有公钥文件,我需要将其添加到authorized_keys
他用来运行应用程序的用户中,这样我就可以作为该用户进行 ssh。
我的问题是我不知道执行此操作的命令。我想知道如何使用本地计算机中的文件来执行此操作,或者仅从根目录复制authorized_keys。
答案1
将您的密钥发送到 ,/tmp
然后将其附加到authorized_keys
。
替换这些命令中的SERVER
and :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 到达目标系统并且具有您想要添加的公钥的地方运行,这实际上是您想要执行此操作的任何地方。