为什么要在Git Bash中使用SSH
很多开发者在克隆或推送代码时习惯使用HTTPS地址,每次操作都要输入用户名和密码。切换到SSH协议后,只需一次性配置密钥,后续所有操作都能自动完成身份验证。SSH不仅传输过程加密更安全,还能避免频繁敲密码的麻烦,尤其适合需要高频提交的项目。Git Bash作为Windows下常用的终端环境,内置了完整的OpenSSH工具链,直接使用就能实现无缝对接。相比HTTPS,SSH密钥一旦配对成功,电脑换浏览器或清理缓存都不会影响连接稳定性。
检查本地是否已有SSH密钥
打开Git Bash,输入cd ~/.ssh命令进入目录。如果提示找不到路径,说明你还没有生成过任何密钥,直接跳到下一步即可。若能看到id_rsa、id_ed25519等文件,代表已有旧密钥。建议保留备份后重新生成,或者跳过本教程直接配置现有密钥。注意不要随意删除私钥文件,否则必须重新走一遍申请流程。如果发现文件夹里全是乱码命名的临时文件,直接用rm命令清理后再从头开始会更干净。
生成新的SSH密钥对
在Git Bash窗口中输入ssh-keygen -t ed25519 -C your_email@example.com并按回车。系统会询问保存路径,直接按回车使用默认位置即可。接下来会要求设置密钥短语,通常直接连续两次回车留空,这样日常使用最方便。生成成功后,终端会显示一串随机艺术字和指纹信息。用cat ~/.ssh/id_ed25519.pub查看公钥内容,全选复制下来备用。如果公司网络有严格限制,也可以换成rsa算法,命令改为ssh-keygen -t rsa -b 4096 -C your_email@example.com。
将公钥添加到代码托管平台
以GitHub为例,登录账号后点击右上角头像选择Settings,找到SSH and GPG keys菜单。点击New SSH key按钮,填入任意标题方便识别,把刚才复制的公钥粘贴到Key文本框里,最后点Add SSH key保存。如果是GitLab或Gitee,路径大同小异,都在账户设置的个人信息或安全选项里。添加完成后平台通常会发一封确认邮件,按要求点击链接激活即可。切记公钥必须以ssh-ed25519或ssh-rsa开头,结尾带有你的邮箱,中间不能有多余空格或换行。
配置Git Bash识别新密钥
打开命令窗口输入eval $(ssh-agent -s),让后台代理启动并记住你的密钥。接着输入ssh-add ~/.ssh/id_ed25519,终端返回Identity added就表示加载成功。为了以后不用每次都手动启动代理,可以在~/.bash_profile末尾追加一行alias sshagent='eval $(ssh-agent -s) && ssh-add'。测试连接时运行ssh-T git@github.com,看到Hi开头的一行欢迎语就说明通道已打通。不同平台的域名地址略有区别,gitlab对应git@gitlab.com,gitee则是git@gitee.com。
常见问题与快速排查
遇到Permission denied请核对公钥是否正确粘贴,以及目标仓库是否开启了SSH访问权限。Host key verification failed通常是因为更换过设备或重装过系统,删掉~/.ssh/known_hosts里对应的记录再重试一次即可。如果实在不想折腾SSH,随时可以用git remote set-url origin https://...切回普通模式。掌握这套流程后,日常拉取推送代码会顺畅许多,遇到网络波动也能快速定位问题所在。定期更新密钥能防范安全风险,建议每年更换一次。



