ssh方式克隆GitHub repo

news/2025/2/11 20:54:35/
  • 官方教程在这里:
    Adding a new SSH key to your GitHub account,我主要整理一下流程和说一下我遇到的问题

此处特别感谢Claude2的悉心指导,tql

  • 首先遇到的问题就是 git clone 私有仓库的时候显示

    remote: Support for password authentication was removed on August 13, 2021.
    remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
    
  • 因为以前用vscode一直没遇到这个问题,就去问了问Claude,然后它让我用ssh方式

  • 我按照指示生成了ssh key,此时界面上会显示如下形式
    The key fingerprint is: xxx The key's randomart image is: xxx

    • 这里会有个小问题,系统里面可能原先有key了,那要防止覆盖的话得重新命名,可以一步到位

      ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -f ~/.ssh/my_custom_key
      
    • 这个命令说明:

      • -t rsa 指定生成RSA算法的密钥(默认也是RSA)
      • -b 4096 指定密钥长度为4096 bit
      • -C “your_email@example.com” 设置注释文字,比如填写你的邮箱
      • -f ~/.ssh/my_custom_key 使用-f参数指定密钥的保存路径和文件名为~/.ssh/my_custom_key
        这样在执行keygen时,会在~/.ssh/目录下生成两个密钥文件:
        • my_custom_key 私钥
        • my_custom_key.pub 公钥
  • 然后去哪里查看呢?
    ls -al ~/.ssh

  • cat ~/.ssh/xxx你生成的xxx.pub,然后复制到github里面的位置就可以了

  • 我遇到的问题主要是接下来一直遇到下面这个

    Cloning into 'xxx'...
    git@github.com: Permission denied (publickey).
    fatal: Could not read from remote repository.Please make sure you have the correct access rights
    and the repository exists.
  • 试了好多办法,比如ssh权限,修改pub权限等等都没用,后来一想,会不会是几个key有冲突,然后就把想法告诉Claude2,他说可能是,然后让我去照着下面的步骤做,然后就成功了!


以下为Claude2的回答

  • 本地存在多个SSH密钥对,这时需要指定使用哪一个私钥来访问GitHub。可以通过以下步骤来指定活动的SSH密钥:

    1. 在~/.ssh/目录下查看存在哪些私钥文件,可能有id_rsa、id_rsa_xxx等

    2. 在GitHub账号设置的SSH Keys页面,检查你添加的是哪个公钥(通过公钥内容可以匹配私钥名称)

    3. 编辑~/.ssh/config文件,添加以下内容指定私钥的路径:

      Host github.com
      
    IdentityFile ~/.ssh/id_rsa_xxx ```
    

    将id_rsa_xxx替换为你在GitHub上使用的公钥对应的私钥文件名。

    1. 保存config文件。

    2. 终端中测试连接GitHub:

      ssh -T git@github.com
      

    现在SSH应该会自动读取指定的私钥来验证连接。

    1. 尝试再次克隆仓库,应该就能成功连接了。

    这种方式可以在有多个SSH密钥的情况下,指定使用哪一个私钥来连接特定的Git服务器,避免冲突。

以下为Claude2的回答

ssh -T git@github.com 这个命令是用于测试SSH连接GitHub服务器是否正常的。

其中:

  • ssh 是安全SHELL的客户端程序。

  • -T 参数表示不执行远程命令,仅测试连接。

  • git@github.com 表示使用git协议连接GitHub主机。

运行这个命令后,可能有以下几种输出结果:

  1. 连接成功,会看到"You’ve successfully authenticated" 等提示。这表示SSH连接正常。

  2. 授权失败,提示 “Permission denied”。表示GitHub拒绝了SSH密钥验证。

  3. 连接超时。网络问题导致无法连接上GitHub。

  4. 主机无法解析。域名无法解析到GitHub服务器IP。

  5. 其他错误信息。如SSH版本、配置不正确导致的问题。

所以这个测试连接的命令可以用来:

  • 检查SSH到GitHub的网络连通性。

  • 排查GitHub拒绝连接的问题。

  • 确认你的SSH密钥和配置正常有效。

  • 在修改SSH配置后重新验证设置是否生效。

通过这个命令返回的结果,可以确定是服务器端的问题,还是自己本地的SSH客户端配置问题。这有助于针对性地解决SSH无法连接的问题。


http://www.ppmy.cn/news/866888.html

相关文章

2307d静态栈

原文 import core.stdc.stdio : printf;extern(C) void main() {printf("Hello betterC\n");test(); }void test() {enum test foo();static if(test) {printf("Static object is created :)\n");S!int s;foreach(key, value; s.n){printf("Previou…

majaro kde 搜狗五笔拼音 无法输入顿号

个人在输入法界面配置了半天,没有解决,后面在输入法中加入搜狗五笔,在界面上找到解决方案,如下图所示,最后又换回五笔拼音输入法就可以了,核心就是切到全角字符(全角标点)。 一个字解…

关于使用微软拼音在Hbuilder打不出顿号、的问题

新手一枚,因为在实际操作中遇到了相同的问题,而在网上找了很久也没有找到答案,所以填完坑后想和大家分享一下。 正常情况下 第一种情况 错按ctrl. 第二种情况 上图中此时指的是按了ctrl.后 填完坑后分享一下,而且我不知道字…

Android解压zip rar 7z文件

添加依赖 implementation org.apache.commons:commons-compress:1.23.0 implementation com.github.junrar:junrar:7.5.4//解压rar implementation org.tukaani:xz:1.9//解压.7z文件需要 下面 FileUtil.kt 代码中用到了 Context 的拓展方法 getAppDir fun Context.getAppDir…

龙芯开始支持主流开发栈: Java, .Net以及NodeJS

最近有媒体报道龙芯发布了.Net软件,好奇地点进去看了看。原来是龙芯社区发布了.Net Core 3.1的运行时 (Runtime) 和开发包 (SDK)。上龙芯开源社区可以看到到今年12月份为止,程序员已经可以在龙芯上使用 Java, .Net 和 NodeJS 开发软件。对这三大主流技术…

龙芯2k按键中断驱动_龙芯2k1000的中断处理逻辑

龙芯2k1000的中断设计 1.前言 2.龙芯2k1000的中断描述 2.1mips设计上的通用中断处理 2.2龙芯中断的设计 3.龙芯2k1000中断的产生与处理 4.龙芯2k1000中断处理概述 1.前言 中断与异常在任何体系架构的芯片上都不会完全一样。在arm的m系列芯片上需要理解NVIC,这个相对…

龙芯3A4000处理器解读①

龙芯3A4000处理器解读 关于3A4000的处理器结构简单做一下自己的相关分析,希望可能通过此次深入分析,更加了解处理器的结构. 文章目录 龙芯3A4000处理器解读简介3号(3A)硬件结构 简介 龙芯3A4000是一款四核处理器,采用28nm工艺制造. 目前市场上基于3A4000的PC大多数工作频率在…

龙芯源码编译mysql_使用源码包在龙芯2F上安装mysql

最近想在龙芯2F电脑上搭建一个网站,不过2F没有装mysql。没想到装这个mysql还挺费劲,光编译都有好多遍了。现在把过程记录,以后留着参考: 龙芯电脑不能使用mysql网站上rpm因为那是针对x86架构CPU的。没办法只有下一个源码包&#x…