克隆仓库时公钥该加在哪儿?别再到处乱找了

刚接触 Git 的时候,最让人头疼的不是命令记不住,而是克隆时总提示权限拒绝。折腾半天才发现,原来是公钥没放对地方。其实这事儿不难,关键是要知道它该往哪塞。

生成完 SSH 公钥后,下一步是啥?

ssh-keygen 生成密钥对之后,你会得到两个文件:私钥(通常是 ~/.ssh/id_rsa)和公钥(~/.ssh/id_rsa.pub)。私钥自己留着,公钥得交给代码托管平台,比如 GitHub、GitLab 或 Gitee。

公钥要贴到平台的 SSH Keys 设置里

以 GitHub 为例,登录后点右上角头像,进 Settings,左边菜单找 SSH and GPG keys,然后点 New SSH key。标题可以随便写,比如“我的笔记本”,下面把公钥内容整个粘进去,保存就行。

GitLab 和 Gitee 也差不多。GitLab 是进用户设置里的 SSH Keys,Gitee 则是在个人设置中找 SSH 公钥管理。位置可能略有不同,但关键词都是“SSH”和“公钥”。

怎么复制公钥内容?别复制错了

很多人直接打开文件复制,结果多了一个换行或者漏了字符。推荐用命令一键复制:

cat ~/.ssh/id_rsa.pub | pbcopy

这是 macOS 的写法。如果你用的是 Linux,可能需要先装 xclip

cat ~/.ssh/id_rsa.pub | xclip -selection clipboard

Windows 上用 Git Bash 的话,可以这样:

cat ~/.ssh/id_rsa.pub | clip

添加完就能直接克隆了吗?

加完公钥别急着试,先验证一下通不通:

ssh -T git@github.com

如果是 GitHub,会收到一句 Hi 提示,说明身份已经认了。这时候再去克隆 git@github.com:username/repo.git 这种格式的地址,就不会再弹密码框了。

有个常见误区:有些人把公钥加到了仓库的 Deploy Keys 里,也能克隆,但这只对单个仓库有效。如果每个项目都这么搞,等于重复劳动。个人账户的 SSH Keys 才是一劳永逸的解法。

换电脑了怎么办?

新电脑重新生成一对密钥,把新的公钥再贴一遍就行。别想着把旧的私钥拷过来,既不安全也不规范。现在的机器性能强,生成一次眨眼就完事,省这点时间反而埋下隐患。

说白了,公钥的位置就一个:代码平台的用户级 SSH 设置页面。记住这个,以后再也不用翻文档翻到怀疑人生。