别再手动复制SSH公钥了,Linux服务器一键从GitHub快速导入公钥

前言

Ubuntu 安装程序(Subiquity)的一大亮点,只要输入 GitHub 用户名,就可以自动导入 SSH 公钥。

它极大地简化了新服务器的初始化配置,让你免去了手动复制粘贴那一大串 SSH Public Key 的烦恼。

原理

GitHub 为每个用户提供了一个公开的 SSH 公钥访问接口。

任何人的公钥都是公开信息的,你只需要在浏览器或终端访问以下 URL 模式: https://github.com/你的用户名.keys

当你输入用户名时,Ubuntu 安装程序在后台执行了类似以下的操作:

  1. 通过网络请求访问 https://github.com/username.keys
  2. 获取该页面返回的纯文本公钥列表。
  3. 将这些公钥追加到服务器对应用户的 ~/.ssh/authorized_keys 文件中。
  4. 确保 .ssh 目录和 authorized_keys 文件的权限正确(通常是 700 和 600)。

如何实现?

方法一:使用 ssh-import-id(最推荐)

Ubuntu 那个功能其实是调用了 ssh-import-id 这个工具,它在 Debian 的官方仓库里也是有的。

  1. 安装工具:

    Bash

    复制代码
    sudo apt update && sudo apt install ssh-import-id -y
  2. 导入公钥:

    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 中,实现真正的"无感"配置。
相关推荐
程序猿编码10 小时前
eBPF代理:让SSH进程“溯源”,找到背后的客户端IP
linux·tcp/ip·ssh·ebpf
Shepherd061910 小时前
【IT 实战】解决 TP-Link USB 无线网卡在 Linux/PVE 下识别为存储设备的问题
linux·运维·服务器
开开心心_Every11 小时前
免费轻量电子书阅读器,多系统记笔记听书
linux·运维·服务器·神经网络·安全·机器学习·pdf
存储服务专家StorageExpert11 小时前
DELL EMC isilon/PowerScale 存储的健康检查方法
linux·运维·服务器·netapp存储·emc存储
熊文豪11 小时前
当系统在后台偷偷“记账“:KES 性能观测体系深度解析
linux·运维·服务器·数据库
哦豁灬11 小时前
ThinkPad X220 安装 Arch Linux 完美指南
linux·服务器·thinkpad·arch linux
自动化智库12 小时前
库卡机器人定义全局变量
linux·运维·机器人
Yiyi_Coding12 小时前
BUG列表:如何定位线上 OOM ?
java·linux·bug
杨云龙UP12 小时前
MySQL慢查询日志暴涨导致磁盘告警:slow query log膨胀至397G的生产故障排查:清理、参数优化
linux·运维·服务器·数据库·mysql
chQHk57BN12 小时前
DeepFlow Agent 故障排查指南:注册失败、协议解析、资源识别与配置方式
linux·运维·服务器