返回顶部
分享到

Git通过配置SSH密钥对实现免登录

相关技巧 来源:互联网 作者:佚名 发布时间:2025-11-11 22:46:28 人浏览
摘要

在使用 Git 进行版本控制时,每次推送代码都需要输入用户名和密码会严重影响工作效率。通过配置 SSH 密钥对,可以实现免密码认证,让 Git 操作更加便捷安全。 配置步骤 1. 生成 SSH 密钥对

在使用 Git 进行版本控制时,每次推送代码都需要输入用户名和密码会严重影响工作效率。通过配置 SSH 密钥对,可以实现免密码认证,让 Git 操作更加便捷安全。

配置步骤

1. 生成 SSH 密钥对

使用以下命令生成 RSA 密钥对,其中 Hettyka 是标识符,可根据需要自定义:

1

ssh-keygen -t rsa -b 4096 -C "Hettyka"

在这里插入图片描述

执行过程说明:

  • 系统会提示选择密钥保存路径,默认按 Enter 使用推荐路径
  • 设置密钥密码(可选,直接按 Enter 跳过)
  • 生成完成后会显示密钥指纹和随机字符图像

生成的文件:

id_rsa:私钥文件(必须保密) id_rsa.pub:公钥文件(可公开)

在这里插入图片描述

2. 配置公钥到代码托管平台

以 Gitee 为例:

  • 复制公钥内容:

1

cat ~/.ssh/id_rsa.pub

  • 登录 Gitee,进入「设置」→「SSH 公钥」
  • 添加新的 SSH 公钥,将复制的公钥内容粘贴到输入框中
  • 填写标题(可选),点击确认

3. 配置 SSH 代理

3.1 启动 SSH 代理

1

eval "$(ssh-agent -s)"

3.2 添加私钥到 SSH 代理

1

ssh-add ~/.ssh/id_rsa

权限问题处理:

如果遇到 Permission denied 错误,可能需要使用管理员权限:

这时需要提高私钥权限:

4. 测试连接

验证 SSH 连接是否配置成功:

1

ssh -T git@gitee.com

成功时会显示欢迎信息,确认密钥已正确配置。

5. 配置 Git 远程仓库

查看当前远程仓库地址

1

git remote -v

更换为 SSH 地址

如果当前使用 HTTPS 地址,需要更换为 SSH 协议:

1

git remote set-url origin 你的ssh仓库地址

注意事项

  1. 私钥安全:私钥文件相当于密码,切勿泄露给他人
  2. 多平台配置:如需在多个代码平台使用,通常只需在不同平台重复步骤 2
  3. 多密钥管理:如需为不同平台配置不同密钥,可在 SSH 配置文件中设置

验证配置

完成所有步骤后,执行 Git 推送操作:

1

git push origin main

如果配置正确,将不再需要输入密码即可完成操作。

故障排除

  • 连接失败:检查公钥是否正确添加到代码平台
  • 权限错误:确保私钥文件权限为 700
  • 代理问题:确认 SSH 代理正常运行且已加载私钥

通过以上配置,即可实现 Git 操作的免登录认证,提升开发效率。

遇到的问题:

重新打开ssh标签页去拉代码的时候,就会遇到这种情况:

原因是:SSH 认证代理 (ssh-agent) 在每次重新连接服务器时都会重置

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仓库上的代码


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • Git通过配置SSH密钥对实现免登录

    Git通过配置SSH密钥对实现免登录
    在使用 Git 进行版本控制时,每次推送代码都需要输入用户名和密码会严重影响工作效率。通过配置 SSH 密钥对,可以实现免密码认证,让
  • Visual Studio中Git 提交缺少用户名的问题解决
    您在 Visual Studio 提交代码时遇到的 git 没有用户名 错误是因为 Git 需要配置用户身份信息才能进行提交。让我为您提供完整的解决方案: 完
  • IDEA/WebStorm卡顿问题与启动参数调优完全指南
    为什么会卡顿 IDEA/WebStorm 本质:基于 JetBrains Runtime (JBR) 的 Java 应用,性能高度依赖 JVM 参数。 常见卡顿原因: 默认堆内存过小,项目一大就
  • WebStorm安装配置超的教程

    WebStorm安装配置超的教程
    WebStorm 是一款由 JetBrains 公司开发的专业集成开发环境(IDE),主要用于 Web 开发,在前端和后端开发领域都备受青睐。 在 2024 年10 月 24 日
  • AI IDE+AI编程辅助工具能提升开发效率,让程序员

    AI IDE+AI编程辅助工具能提升开发效率,让程序员
    当AI IDE和AI辅助编程工具如雨后春笋般涌现时,我既感到兴奋又保持理性思考。Cursor、Claude Code、阿里的Qwen3 Code、腾讯的CodeBuddy、字节的Tr
  • Git用户名与邮箱的配置介绍
    在使用 Git 进行版本控制时,每一次代码提交(commit)都会记录提交者的身份信息。这些信息不仅用于追踪代码变更历史,还在团队协作、代
  • 在GitHub上修改他人分支的操作
    在 GitHub 上修改他人的分支是一个常见的协作需求,但具体操作取决于你是否拥有目标仓库的直接推送权限。如果你是项目的协作者,可以直
  • git忽略CRLF警告介绍
    ?这个警告通常没有实质性影响??,可以了解它的原因和解决方案。 CRLF 警告的含义 警告信息 warning: in the working copy of .gitignore, LF will be repl
  • git仓库配置及仓库特性介绍
    一、git仓库初始化 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 git init 把当前所在目录变成git工作目录 git config ‐‐global 使用全局配置文件 ‐
  • TortoiseGit添加忽略文件过程

    TortoiseGit添加忽略文件过程
    TortoiseGit添加忽略文件 右键需要忽略的文件夹 操作如下: 英文版本 操作如下:
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计