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

执行过程说明:
生成的文件:
id_rsa:私钥文件(必须保密) id_rsa.pub:公钥文件(可公开)

以 Gitee 为例:
|
1 |
cat ~/.ssh/id_rsa.pub |

|
1 |
eval "$(ssh-agent -s)" |
|
1 |
ssh-add ~/.ssh/id_rsa |
权限问题处理:
如果遇到 Permission denied 错误,可能需要使用管理员权限:

这时需要提高私钥权限:

验证 SSH 连接是否配置成功:
|
1 |
ssh -T git@gitee.com |

成功时会显示欢迎信息,确认密钥已正确配置。
|
1 |
git remote -v |
如果当前使用 HTTPS 地址,需要更换为 SSH 协议:
|
1 |
git remote set-url origin 你的ssh仓库地址 |
完成所有步骤后,执行 Git 推送操作:
|
1 |
git push origin main |
如果配置正确,将不再需要输入密码即可完成操作。
通过以上配置,即可实现 Git 操作的免登录认证,提升开发效率。
重新打开ssh标签页去拉代码的时候,就会遇到这种情况:

1.ssh-agent 是会话级别的:每次断开 SSH 连接,ssh-agent 进程就会终止
2.密钥未持久化:添加到 ssh-agent 的密钥只在当前会话有效
3.缺乏自动启动机制:服务器没有配置自动启动和加载 SSH 密钥
方案一:配置 SSH 自动加载密钥(推荐)
编辑 SSH 配置文件:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
# 编辑 SSH 配置文件 vim ~/.ssh/config
# 添加以下内容 Host gitee.com HostName gitee.com User git IdentityFile /root/git/id_rsa IdentitiesOnly yes
# 设置正确权限 chmod 600 ~/.ssh/config |
这样每次打开新的会话的时候,密钥还是会存在,可以直接拉取git仓库上的代码