如何自动添加你的SSH公钥到authorized_keys文件?

5

我正在寻找最简单的命令集,以便将您的公钥添加到远程服务器根帐户的authorized_keys文件中。

我们假设当前用户具有登录远程服务器的访问权限,并且也在sudoers文件中列出。

运行该命令两次不应产生任何影响。

1个回答

9
你想尝试运行ssh-copy-id命令吗?手册上解释如下:
ssh-copy-id - 将你的公钥安装到远程机器的authorized_keys文件中
听起来正是你需要的吗?不过我从未尝试过两次运行该命令,也许它不会检查这一点。

虽然这个工具似乎是用来做这件事的,但它的设计似乎无法满足这个使用案例。如果您不能作为root登录,但可以作为自己登录,因为系统正在使用NIS。不过,您在sudoers中,所以可以将自己添加到列表中。ssh-copy-id在任何禁用密码登录的系统上都是无用的,这在现今相当普遍。 - sorin
2
如果我要设置一个新系统,我会启用密码登录,使用ssh-copy-id为自己设置,然后关闭密码登录。同样,如果你是系统管理员,你可以sudo到一个新用户的帐户,并以同样的方式将他们的公钥复制到他们的目录中。为什么要这样做呢?它只是替换了几个按键。但它也为您检查了authorized_keys文件的权限等。在某种意义上,它为您进行了双重检查。从这个意义上说,它并不是“无用”的。我一直都在使用它... - Ray
1
刚刚想到一件事——如果你对安全性如此关注以至于要禁用密码登录,那我建议先禁用远程root登录。并且让希望获得远程root访问权限的用户使用sudo。'root'是标准的系统管理员登录账户;索性禁用它,这样就没有人会尝试远程登录了。 - Ray
是的,当服务器在使用NIS时,确保禁用管理员的root登录,这只会在NIS无法正常工作时引发麻烦。正如你所说,root有其作用,并且恰好是系统管理员 :D - sorin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接