从github导入公钥到本地ubuntu账户

gre*_*les 10 ssh 18.04

我正在设置一个新的 Ubuntu (18.04) 服务器,并在安装过程中注意到我可以从 github 导入公钥。我现在已经完成设置并想创建更多用户。如果可能的话,继续从 github 导入他们的公钥似乎是理想的。有没有办法为安装过程之外的用户触发从公共 github 配置文件导入密钥的功能?

gre*_*les 15

发布问题后不久,我找到了答案。有一个特殊的命令ssh-import-id可以导入 ssh 密钥。ssh-import-id手册页很好地解释了它。它也作为ssh-import-id托管在启动板上

基本用法:

# import keys from github
ssh-import-id-gh <username>
Run Code Online (Sandbox Code Playgroud)

我希望这对其他人有帮助。


Kaz*_*lfe 11

GitHub 通过API 端点提供此功能,您可以下载和解析该端点。对我们来说不幸的是,这确实以 JSON 格式返回对象,因此有时解析起来有点困难(尤其是在 shell 中)。

对我们来说幸运的是,还有另一个端点可以获取用户的公共 SSH 密钥:

https://github.com/<username>.keys
Run Code Online (Sandbox Code Playgroud)

您可以使用它来wget非常简单地下载和附加密钥,并且无需任何解析:

wget -O - https://github.com/myuser.keys >> /home/myuser/.ssh/authorized_keys
Run Code Online (Sandbox Code Playgroud)

请注意,为了使用此命令,您需要对该用户的主目录具有写入权限。您也可以选择使用tee -a,如果不能保证特权,这会更容易:

wget -O - https://github.com/myuser.keys | sudo tee -a /home/myuser/.ssh/authorized_keys
Run Code Online (Sandbox Code Playgroud)