如何把 SSH 公钥复制到剪贴板
复制 SSH 公钥到剪贴板的四种方式:macOS 用 pbcopy、Linux 用 xclip/xsel、Windows 用 clip,或直接 cat 后手动复制。附各平台安装命令。
一句话回答:macOS 用 pbcopy < ~/.ssh/id_rsa.pub;Linux 用 xclip -selection clipboard < ~/.ssh/id_rsa.pub(X11 桌面需先装 xclip;Wayland 可用 wl-copy);Windows(Git Bash)用 clip < ~/.ssh/id_rsa.pub。都没有就直接 cat 打印后鼠标选中复制。注意复制的是 .pub 公钥文件,不是私钥。
各平台命令
macOS(自带 pbcopy):
pbcopy < ~/.ssh/id_rsa.pub
Linux(需安装 xclip 或 xsel):
sudo apt install xclip # Debian/Ubuntu
xclip -selection clipboard < ~/.ssh/id_rsa.pub
# 或 xsel
xsel --clipboard < ~/.ssh/id_rsa.pub
Windows(Git Bash / PowerShell):
clip < ~/.ssh/id_rsa.pub # Git Bash
Get-Content ~/.ssh/id_rsa.pub | Set-Clipboard # PowerShell
WSL:
cat ~/.ssh/id_rsa.pub | clip.exe
没有剪贴板工具时
直接打印出来手动复制:
cat ~/.ssh/id_rsa.pub
在终端里选中输出的整行(ssh-rsa AAAA... 或 ssh-ed25519 AAAA... 开头的一整行,末尾注释可保留,密钥类型与 Base64 主体不可缺失),Ctrl+Shift+C 或鼠标右键复制。
几个注意点
- 复制
.pub结尾的公钥,id_rsa(无后缀)是私钥,绝不要发给任何人或粘贴到网站上 - 公钥必须完整一行粘贴到 GitHub/服务器的
authorized_keys,中间断行会导致认证失败 - 如果用的是 ed25519 密钥,文件名是
id_ed25519.pub,命令同理替换路径 - 目标场景是 GitHub:Settings → SSH keys → New SSH key,粘贴保存即可
常见问题(FAQ)
Q:xclip: command not found 怎么办?
A:说明没装。Debian/Ubuntu:sudo apt install xclip;CentOS:sudo yum install xclip。不想装就用 cat + 手动复制。
Q:无桌面的纯服务器上复制的剪贴板去哪了?
A:xclip/pbcopy 操作的是本机图形环境的剪贴板。SSH 登录的远程服务器上运行它们通常无效(没有 X 会话)。正确做法是在本地电脑复制本地公钥,再粘贴到 GitHub 或 ssh-copy-id user@server。
Q:ssh-copy-id 和手动复制公钥有什么区别?
A:ssh-copy-id user@server 一条命令自动把公钥追加到服务器的 ~/.ssh/authorized_keys,免去手动复制粘贴,前提是已有可用登录认证(密码或其他已授权密钥),且账户有权更新 authorized_keys。
核查依据
本文依据官方文档核对,示例未在实际业务环境运行;上线前请按部署版本、权限与数据范围验证。