在 Linux 中使用 Git 从 HTTPS 切换至 SSH

使用 Git 从 HTTPS 切换至 SSH

起因是我在 Linux 中使用 git push 推送经常卡住或失败,真的很烦,于是选择 切换成 SSH ,可以提高稳定性和体验,比较适合在 Linux 系统开发环境中长期使用。当然本文的方法也同样适用于 Windows。


1. 确认是否已生成 SSH 密钥对

先检查是否已有 .ssh/id_rsa 文件:

1
ls ~/.ssh

如果看到了 id_rsaid_rsa.pub 就说明已经有了密钥对。如果没有,就执行下面的命令生成:

1
ssh-keygen -t rsa -b 4096 -C "你的邮箱"

一路回车即可生成(个人使用,建议不设密码短语,会方便些)。


2. 将 SSH 公钥添加到远程仓库平台(如 GitHub / Gitee)

1. 复制公钥内容

1
cat ~/.ssh/id_rsa.pub

复制输出的整段文本(以 ssh-rsa 开头,以邮箱结尾)。对应 Windows 实际路径为 C:\Users\你的用户名\.ssh\

2. 添加到远程平台

1. GitHub:

  • 登录 GitHub。
  • 点击头像 → SettingsSSH and GPG keys
  • New SSH key,粘贴公钥,命名为“centos 7.6”等,命名自定义就好。

2. Gitee:

  • 登录 Gitee。
  • 用户头像 → 设置SSH公钥
  • 粘贴进去即可。

3. 切换仓库的远程地址从 HTTPS ➜ SSH

切换命令如下(在项目根目录下执行):

1
2
3
git remote -v                          # 查看当前远程仓库地址
git remote set-url origin git@github.com:yourname/yourrepo.git # 这个在 github/gitee 对应仓库 → 代码/克隆/下载 → SSH,点击复制
git remote -v # 再次查看,确保已修改成功

4. 测试 SSH 是否连接成功

1
ssh -T git@github.com

第一次会提示:

1
2
The authenticity of host 'github.com (IP)' can't be established...
Are you sure you want to continue connecting (yes/no)?

输入 yes 后,如果成功,会看到:

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

这里可能存在一个 warning,大概意思是说 shell 中不能使用,不用管,这就已经配置好了!

5. 配置完成,一键三连!