当前位置: 首页 > news >正文

Github配置ssh key,密钥配对错误怎么解决?

解决密钥配对的方案如下:

方法一、最有效的方案:重新配置,验证 SSH 密钥是否已添加到 GitHub

确保您的 SSH 密钥已经正确添加到了 GitHub 账户中。您可以打开命令行控制台(`cmd/powerShell都可以),按照以下步骤操作:

  1. 生成新的 SSH 密钥对(如果尚未创建):

    ssh-keygen -t ed25519 -C "your_email@example.com"
    

    按照提示操作,建议不要设置密码短语以简化自动化流程。

  2. 将公钥添加到 GitHub

    复制生成的公钥内容:

    cat "$env:USERPROFILE\.ssh\id_ed25519.pub"
    

    登录 GitHub,进入 SSH and GPG keys 设置页面,点击“New SSH key”,然后粘贴复制的内容并保存。

  3. 测试 SSH 连接

    使用以下命令测试是否能够成功连接到 GitHub:

    ssh -T git@github.com
    

    如果一切正常,您应该看到一条欢迎消息,表明身份验证成功。
    sshKey的设置步骤

验证问题是否解决

完成上述任一步骤后,请尝试再次执行 Git 操作,例如推送代码或拉取最新更改,以确认问题是否已解决。

方法二:最简单的方案!使用 HTTPS 而不是 SSH (比较省事!不配密钥了)

如果您不想处理 SSH 密钥相关的问题,可以考虑切换到 HTTPS 方式来克隆和推送仓库。这样就不需要管理 SSH 密钥了。要更改现有的远程 URL,请运行以下命令:

git remote set-url origin https://github.com/your-username/program.git

请将 your-usernameprogram 替换为实际的 GitHub 用户名和仓库名称。

方法三:更新 known_hosts 文件中的主机密钥
  1. 打开 known_hosts 文件
    在 Windows 上,known_hosts 文件通常位于用户主目录下的 .ssh 文件夹中。您可以使用记事本或其他文本编辑器打开它:

    notepad %USERPROFILE%\.ssh\known_hosts
    

    我这里没notepad,直接去的文件目录:C:\Users\Administrator\.ssh\known_hosts

  2. 移除旧的 GitHub 主机密钥
    根据错误提示,GitHub 的条目位于文件的第一行。您可以手动删除该行,或者在 PowerShell 中运行以下命令来删除第一行:

    Get-Content "$env:USERPROFILE\.ssh\known_hosts" | Select-Object -Skip 1 | Set-Content "$env:USERPROFILE\.ssh\known_hosts"
    
  3. 重新添加 GitHub 主机密钥
    使用以下命令自动获取最新的 GitHub 主机密钥并将其添加到 known_hosts 文件中:

    ssh-keyscan -t rsa,ed25519 github.com >> "$env:USERPROFILE\.ssh\known_hosts"
    
  4. 再次尝试推送代码
    现在尝试再次推送代码到 GitHub:

    git push origin master
    

注意事项

  • 保持安全:尽量避免长期禁用 StrictHostKeyChecking,因为它提供了重要的安全保护。
  • 备份配置文件:在修改 .ssh 文件夹中的任何文件之前,建议先备份这些文件,以防出现问题时可以恢复原状。

免费分享个可以将本地仓库与远程仓库关联起来的命令:

git remote set-url origin https://github.com/[your-username]/program.git

http://www.mrgr.cn/news/83632.html

相关文章:

  • 金融项目实战 01|功能测试分析与设计
  • 【update 更新数据语法合集】.NET开源ORM框架 SqlSugar 系列
  • Dockerfile 构建java镜像并运行部署java项目
  • HarmonyOS 鸿蒙 ArkTs(5.0.1 13)实现Scroll下拉到顶刷新/上拉触底加载,Scroll滚动到顶部
  • javaEE-网络原理-5.进阶 传输层UDP.TCP
  • 【Rust自学】11.9. 单元测试
  • Open FPV VTX开源之第一次出图
  • Day05-后端Web基础——TomcatServletHTTP协议SpringBootWeb入门
  • 【AIDD药物研发】张载熙-生成式AI4药物发现
  • 《自动驾驶与机器人中的SLAM技术》ch8:基于 IESKF 的紧耦合 LIO 系统
  • 知识图谱抽取分析中,如何做好实体对齐?
  • Java List去重:Stream、HashMap与TreeSet对比分析
  • 初识Java3
  • 前端验证码实现
  • Java线程池解密
  • SpringData-Redis缓存之RedisTemplate
  • SpringCloud微服务:基于Nacos组件,整合Dubbo框架
  • 镀锡薄板与镀锡废水详解
  • 中等难度——python实现电子宠物和截图工具
  • 宁德时代C++后端开发面试题及参考答案
  • 51单片机——I2C-EEPROM
  • 【0388】Postgres内核 SQL function 删除 physical replication slot 底层实现( 4 )
  • SparX:一种用于层次视觉Mamba和变换器网络的稀疏跨层连接机制
  • (经过验证)在 Ubuntu 系统中为 VSCode、PyCharm 终端及 Jupyter Notebook 配置代理的完整方案
  • springboot vue uniapp 仿小红书 1:1 还原 (含源码演示)
  • 了解 Ansys Mechanical 中的网格方法:综合指南