Linux服务器如何一键从GitHub导入SSH公钥?

摘要:前言 Ubuntu 安装程序(Subiquity)的一大亮点,只要输入 GitHub 用户名,就可以自动导入 SSH 公钥。 它极大地简化了新服务器的初始化配置,让你免去了手动复制粘贴那一大串 SSH Public Key 的烦恼。 原理
前言 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 中,实现真正的“无感”配置。