别再手动复制SSH公钥了,Linux服务器一键从GitHub快速导入公钥
输入GitHub用户名就自动导入SSH公钥?Ubuntu这懒人功能挺省事。原理不就是爬取`https://github.com/用户名.keys`吗?手动用`curl`也能实现,装`ssh-import-id`更高效,但谁稀罕这些花里胡哨的。
目录6 个章节
前言
Ubuntu 安装程序(Subiquity)的一大亮点,只要输入 GitHub 用户名,就可以自动导入 SSH 公钥。
它极大地简化了新服务器的初始化配置,让你免去了手动复制粘贴那一大串 SSH Public Key 的烦恼。
原理
GitHub 为每个用户提供了一个公开的 SSH 公钥访问接口。
任何人的公钥都是公开信息的,你只需要在浏览器或终端访问以下 URL 模式: https://github.com/你的用户名.keys
当你输入用户名时,Ubuntu 安装程序在后台执行了类似以下的操作:
- 通过网络请求访问
https://github.com/username.keys。 - 获取该页面返回的纯文本公钥列表。
- 将这些公钥追加到服务器对应用户的
~/.ssh/authorized_keys文件中。 - 确保
.ssh目录和authorized_keys文件的权限正确(通常是 700 和 600)。
如何实现?
方法一:使用 ssh-import-id(最推荐)
Ubuntu 那个功能其实是调用了 ssh-import-id 这个工具,它在 Debian 的官方仓库里也是有的。
-
安装工具:
Bash
sudo apt update && sudo apt install ssh-import-id -y -
导入公钥:
Bash
ssh-import-id gh:你的GitHub用户名注:
gh:前缀代表 GitHub,它也支持 Launchpad(使用lp:)。
方法二:纯手动万能命令(无需安装任何工具)
如果你不想安装额外的软件包,直接用 curl 配合管道操作也能搞定:
Bash
mkdir -p ~/.ssh && chmod 700 ~/.ssh
curl -L https://github.com/你的用户名.keys >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
Tips
- 这种方式依赖于 GitHub 的可用性和网络连接。如果你在公司内网或者特殊网络环境下,记得确认服务器能否正常访问
github.com。 - 多平台支持: 除了 GitHub,GitLab 也提供类似的功能,链接格式为
https://gitlab.com/用户名.keys。 - 自动化部署: 如果你经常折腾服务器,可以把上面那行
curl命令写进你的初始化脚本或 Dockerfile 中,实现真正的“无感”配置。
_EOF_
别再手动复制SSH公钥了,Linux服务器一键从GitHub快速导入公钥
- 本文作者:
- 程序设计实验室
- 版权声明:
- 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
相关文章
Ubuntu-18-04-开启托盘图标点击最小化
前言 Ubuntu的托盘挺好看的,美中不足的就是点击一个打开的应用图标不能像Windows那样最小化。 操作 gsettings set org.gnome.shell.extensions.dash-to-dock click-action 'minimize' 截图
2025-10-27 · 系统配置 · 约 1 分钟
Ubuntu-18-04-修复-Telegram-中文输入法
前言 Ubuntu 18.04,新的 Gnome 桌面的确好看很多。但同时出现了很多之前在 Unity 没有出现过的 BUG,例如在 Telegram 下无论怎么切换输入法都不能输入中文。 大概是所有 QT 编写的应用程序在 Gnome3 下都会出现这个问题,解决方法是引入 QT_IM_MODULE 变量。大致 步骤如下 编辑~/.local/share/applications/telegram
2025-10-27 · 系统配置 · 约 1 分钟
Nginx配置http跳转https-强制https访问
前言 最近上线了好几个项目,同时也申请了相应的SSL证书,不过发现了一个问题,用户在浏览器直接输入域名的时候,浏览器默认访问的是http站点,然而我们的网站只支持https访问,所以就访问不了咯。 其实可以在nginx全局配置里面把所有访问重定向到https,不过服务器有些站点是提供http服务的,所以只能每个站点分别配置。 根据搜索引擎找到的资料,本文总结了三种配置方法,有需要的朋友可以选择中意
2025-10-27 · 系统配置 · 约 1 分钟
Debian8-stable-升级Python版本到3-6
前言 最近把一个Python项目部署到服务器上,然而服务器上的Python版本实在是太旧了,于是着手进行更新。 互联网上搜索到的方法都是下载Python3.6的代码之后手动编译,然而在服务器上编译安装出了点问题,于是想到了Ubuntu的ppa方式,debian和Ubuntu本属同源,理论上Ubuntu的ppa,debian也是可以用的。 操作步骤如下: 添加软件源 add-apt-reposito
2025-10-27 · 系统配置 · 约 1 分钟
讨论
共 0 条加载评论中…