告别 Git 密码输入:用 SSH 密钥安全连接 GitHub

举报
AiGuoHou 发表于 2026/11/09 10:05:37 2026/11/09
【摘要】 每次使用 Git 推送代码,都需要输入账号密码或处理身份验证问题?通过 SSH 密钥认证,可以让电脑安全地连接 GitHub,减少重复登录操作。本文从生成密钥到配置 GitHub,再到验证连接,带你完成一次完整设置。

如果你经常使用 GitHub 保存代码,可能已经注意到,Git 不仅支持 HTTPS 连接,还支持 SSH 连接。SSH 使用一对密钥验证身份,配置完成后,日常执行 git pull 和 git push 会更加方便。

整个过程只需要几条命令,不需要安装额外的软件(前提是系统已经提供 OpenSSH 客户端)。

一、先理解 SSH 密钥是什么

SSH 密钥采用一对相互关联的密钥:

  • 私钥(Private Key): 保存在自己的电脑上,相当于个人身份凭证,不能随意分享。
  • 公钥(Public Key): 可以提供给 GitHub,用于验证连接是否来自对应的私钥持有者。

可以把它理解为一把钥匙和一把锁:公钥交给 GitHub,私钥留在自己的电脑上。连接时,GitHub 可以验证你的身份,而不需要直接获取私钥。

与反复输入密码相比,SSH 密钥更适合日常开发。不过,私钥一旦泄露,仍然可能被他人滥用,因此建议为私钥设置额外的密码短语(Passphrase)。

二、检查电脑是否已经有 SSH 密钥

在生成新密钥之前,先检查是否已经存在密钥,避免意外覆盖旧文件。

打开终端,macOS、Linux 或 Git Bash 用户可以执行:

ls -al ~/.ssh

Windows PowerShell 用户可以执行:

Get-ChildItem $env:USERPROFILE\.ssh

如果看到以下文件:

id_ed25519
id_ed25519.pub

说明已经存在一对 Ed25519 密钥。

其中,不带 .pub 的是私钥,带 .pub 的是公钥。

如果已经有密钥,可以考虑继续使用,不必重复生成。如果没有,再进行下一步。

三、生成一对新的 SSH 密钥

目前,GitHub 官方文档推荐优先使用 Ed25519 算法。

在终端执行:

ssh-keygen -t ed25519 -C "your_email@example.com"

将示例邮箱替换为自己的 GitHub 注册邮箱。

接下来会出现几个提示:

第一步:选择保存位置。

Enter file in which to save the key:

如果是第一次创建,可以直接按 Enter,使用默认位置。

第二步:设置密码短语。

Enter passphrase:

建议设置一个自己能够记住的强密码短语,并再次输入确认。

完成后,系统会生成两个文件:

~/.ssh/id_ed25519
~/.ssh/id_ed25519.pub

前者是私钥,后者是公钥。

如果电脑上已经有同名密钥,不要直接确认覆盖,可以重新指定一个文件名,例如 id_ed25519_github。

四、把公钥添加到 GitHub

密钥生成后,还需要让 GitHub 认识这把公钥。

第一步:查看公钥内容。

macOS、Linux 或 Git Bash:

cat ~/.ssh/id_ed25519.pub

Windows PowerShell:

Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub

复制完整输出内容,通常以 ssh-ed25519 开头。

第二步:进入 GitHub 设置。

打开 GitHub SSH 密钥设置页面,登录自己的账号。

按照下面的步骤操作:

  1. 点击 New SSH key。
  2. 在 Title 中填写设备名称,例如 My Laptop。
  3. Key type 选择 Authentication Key。
  4. 在 Key 输入框粘贴刚才复制的公钥。
  5. 点击 Add SSH key 完成添加。

注意:这里只能上传 .pub 公钥文件的内容,绝对不要上传不带 .pub 的私钥。

五、测试 SSH 是否配置成功

回到终端,输入:

ssh -T git@github.com

第一次连接时,可能会提示确认 GitHub 主机身份。确认主机指纹与 GitHub 官方公布的信息一致后,再接受连接。

如果配置成功,通常会看到类似下面的信息:

Hi username! You've successfully
authenticated, but GitHub does not
provide shell access.

其中 username 是你的 GitHub 用户名。

看到这段提示,说明 SSH 身份验证已经成功。最后一句不是报错,而是表示 GitHub 不提供普通 SSH 终端登录服务。

六、让现有 Git 项目使用 SSH

如果你之前通过 HTTPS 克隆项目,想改用 SSH,可以进入项目目录执行:

git remote -v

如果看到类似:

https://github.com/用户名/仓库名.git

就说明当前使用的是 HTTPS。

可以通过下面的命令修改远程地址:

git remote set-url origin git@github.com:用户名/仓库名.git

把用户名和仓库名替换成自己的实际信息。

再次执行:

git remote -v

如果地址变成 git@github.com: 开头,就说明修改成功。

以后正常执行:

git push
git pull

Git 就会通过 SSH 进行身份验证。

七、几个必须记住的安全习惯

  • 私钥不要上传到 GitHub 仓库、网盘或公开聊天群。
  • 公钥可以分享,但私钥必须妥善保管。
  • 为私钥设置密码短语,并在需要时使用 SSH Agent 管理。
  • 不同电脑建议使用不同的密钥,设备丢失时可以单独撤销对应公钥。
  • 如果怀疑私钥泄露,应及时从 GitHub 账户中删除对应公钥,并重新生成密钥。

总结: SSH 密钥认证只需要配置一次,就能让 Git 与 GitHub 建立更加方便的安全连接。记住生成密钥、上传公钥、测试连接这三个步骤,下次提交代码时就不必再为重复身份验证烦恼。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。