Git通过配置SSH密钥对实现免登录的完整指南

作者:

文章目录
  • 在使用 Git 进行版本控制时,每次推送代码都需要输入用户名和密码会严重影响工作效率。通过配置 SSH 密钥对,可以实现免密码认证,让 Git 操作更加便捷安全。
  • 私钥安全:私钥文件相当于密码,切勿泄露给他人 多平台配置:如需在多个代码平台使用,通常只需在不同平台重复步骤 2 多密钥管理:如需为不同平台配置不同密钥,可在 SSH 配置文件中设置
  • 完成所有步骤后,执行 Git 推送操作: git push origin main 如果配置正确,将不再需要输入密码即可完成操作。
  • 连接失败:检查公钥是否正确添加到代码平台 权限错误:确保私钥文件权限为 700 代理问题:确认 SSH 代理正常运行且已加载私钥 通过以上配置,即可实现 Git 操作的免登录认证,提升开发效率。
  • 重新打开ssh标签页去拉代码的时候,就会遇到这种情况:
  • 目录
    • 概述
    • 配置步骤
      • 1. 生成 SSH 密钥对
      • 2. 配置公钥到代码托管平台
      • 3. 配置 SSH 代理
        • 3.1 启动 SSH 代理
        • 3.2 添加私钥到 SSH 代理
      • 4. 测试连接
        • 5. 配置 Git 远程仓库
          • 查看当前远程仓库地址
          • 更换为 SSH 地址
      • 注意事项
        • 验证配置
          • 故障排除
            • 遇到的问题:
              • 原因是:SSH 认证代理 (ssh-agent) 在每次重新连接服务器时都会重置
                • 永久解决方案

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

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

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

                在这里插入图片描述

                执行过程说明:

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

                生成的文件:

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

                在这里插入图片描述

                以 Gitee 为例:

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

                eval "$(ssh-agent -s)"
                

                ssh-add ~/.ssh/id_rsa
                

                权限问题处理:

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

                这时需要提高私钥权限:

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

                ssh -T git@gitee.com
                

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

                git remote -v
                

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

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

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

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

                git push origin main
                

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

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

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

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

                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密钥对免登录内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!

                您可能感兴趣的文章:

                • 解决GitHub SSH连接超时问题及分析
                • Ubuntu系统SSH免密连接Github配置全过程
                • Windows环境git配置多个ssh的实现步骤
                • Git配置SSH密钥与私钥的教程(跨平台完整指南)
                • Linux 服务器如何用 SSH 拉取多个 Git 工程

                站内搜索