问题背景
最近在新系统上进行 Git 操作时,可能会遇到 remote: Invalid username or token. Password authentication is not supported for Git operations 的错误。这是因为 GitHub 已不再支持使用账号密码进行 HTTPS 推送,建议改用 SSH 密钥来维持长期的安全连接。
生成 SSH 密钥
在终端执行以下命令生成密钥对:
ssh-keygen -t ed25519 -C "[email protected]"
参数 -t 指定密钥算法,这里选用 ed25519,相比传统 RSA 更安全且性能更优。按提示一路回车即可,私钥会保存在 ~/.ssh/id_ed25519。
将公钥添加到 GitHub
查看生成的公钥内容:
cat ~/.ssh/id_ed25519.pub
复制输出的全部内容,登录 GitHub 进入 Settings -> SSH and GPG keys -> New SSH key。粘贴到文本框中,自定义一个标题,密钥类型保持默认的 Authentication key,点击 'Add SSH key' 保存。

修改远程仓库地址
回到本地仓库,将远程地址从 HTTPS 改为 SSH 格式:
git remote set-url origin [email protected]:username/reponame.git
请将 username 和 reponame 替换为你自己的用户名和仓库名称。这一步是为了让 Git 知道下次推送该走哪个通道。
测试连接与推送
先测试 SSH 是否配置正确:
ssh -T [email protected]
如果看到类似 Hi username! You've successfully authenticated... 的提示,说明配置无误。此时再进行首次推送:
git push -u origin master
参数 -u 用于建立本地分支与远程分支的关联,以后只需写 git push 或 git pull 即可,无需再输入冗长的命令或凭证。


