如何把 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 或鼠标右键复制。

几个注意点

  1. 复制 .pub 结尾的公钥,id_rsa(无后缀)是私钥,绝不要发给任何人或粘贴到网站上
  2. 公钥必须完整一行粘贴到 GitHub/服务器的 authorized_keys,中间断行会导致认证失败
  3. 如果用的是 ed25519 密钥,文件名是 id_ed25519.pub,命令同理替换路径
  4. 目标场景是 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。

核查依据

本文依据官方文档核对,示例未在实际业务环境运行;上线前请按部署版本、权限与数据范围验证。


延伸阅读

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台