概述
在使用 git 进行版本控制时,每次推送代码都需要输入用户名和密码会严重影响工作效率。通过配置 ssh 密钥对,可以实现免密码认证,让 git 操作更加便捷安全。
配置步骤
1. 生成 ssh 密钥对
使用以下命令生成 rsa 密钥对,其中 hettyka 是标识符,可根据需要自定义:
ssh-keygen -t rsa -b 4096 -c "hettyka"

执行过程说明:
- 系统会提示选择密钥保存路径,默认按 enter 使用推荐路径
- 设置密钥密码(可选,直接按 enter 跳过)
- 生成完成后会显示密钥指纹和随机字符图像
生成的文件:
id_rsa:私钥文件(必须保密) id_rsa.pub:公钥文件(可公开)

2. 配置公钥到代码托管平台
以 gitee 为例:
- 复制公钥内容:
cat ~/.ssh/id_rsa.pub
- 登录 gitee,进入「设置」→「ssh 公钥」
- 添加新的 ssh 公钥,将复制的公钥内容粘贴到输入框中
- 填写标题(可选),点击确认

3. 配置 ssh 代理
3.1 启动 ssh 代理
eval "$(ssh-agent -s)"
3.2 添加私钥到 ssh 代理
ssh-add ~/.ssh/id_rsa
权限问题处理:
如果遇到 permission denied 错误,可能需要使用管理员权限:

这时需要提高私钥权限:

4. 测试连接
验证 ssh 连接是否配置成功:
ssh -t git@gitee.com

成功时会显示欢迎信息,确认密钥已正确配置。
5. 配置 git 远程仓库
查看当前远程仓库地址
git remote -v
更换为 ssh 地址
如果当前使用 https 地址,需要更换为 ssh 协议:
git remote set-url origin 你的ssh仓库地址
注意事项
- 私钥安全:私钥文件相当于密码,切勿泄露给他人
- 多平台配置:如需在多个代码平台使用,通常只需在不同平台重复步骤 2
- 多密钥管理:如需为不同平台配置不同密钥,可在 ssh 配置文件中设置
验证配置
完成所有步骤后,执行 git 推送操作:
git push origin main
如果配置正确,将不再需要输入密码即可完成操作。
故障排除
- 连接失败:检查公钥是否正确添加到代码平台
- 权限错误:确保私钥文件权限为 700
- 代理问题:确认 ssh 代理正常运行且已加载私钥
通过以上配置,即可实现 git 操作的免登录认证,提升开发效率。
遇到的问题:
重新打开ssh标签页去拉代码的时候,就会遇到这种情况:

原因是:ssh 认证代理 (ssh-agent) 在每次重新连接服务器时都会重置
1.ssh-agent 是会话级别的:每次断开 ssh 连接,ssh-agent 进程就会终止
2.密钥未持久化:添加到 ssh-agent 的密钥只在当前会话有效
3.缺乏自动启动机制:服务器没有配置自动启动和加载 ssh 密钥
永久解决方案
方案一:配置 ssh 自动加载密钥(推荐)
编辑 ssh 配置文件:
# 编辑 ssh 配置文件
vim ~/.ssh/config
# 添加以下内容
host gitee.com
hostname gitee.com
user git
identityfile /root/git/id_rsa
identitiesonly yes
# 设置正确权限
chmod 600 ~/.ssh/config这样每次打开新的会话的时候,密钥还是会存在,可以直接拉取git仓库上的代码
到此这篇关于 git通过配置ssh密钥对实现免登录的完整指南的文章就介绍到这了,更多相关 git配置ssh密钥对免登录内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论