github ssh 设置 【解决git clone git@github.com:XX】没有权限的问题

本文详细指导如何在遇到gitcloneGitHub仓库权限问题时,通过生成并添加SSH密钥,设置SSH密码,以及将SSH密钥添加到GitHub账户来解决访问权限问题。

详情请参考官方文档

有时git clone 某个代码总会出现

git clone git@github.com:XXXXXXXX

随后报出错误

Warning: Permanently added 'github.com' (ECDSA) to the list of known hosts.
git@github.com: Permission denied (publickey).
fatal: 无法读取远程仓库。

请确认您有正确的访问权限并且仓库存在。

没有权限的原因是git clone git@github.com:XXXXXXXX的都需要github的ssh

生成新 SSH 密钥

打开终端粘贴以下文本,
your_email@example.com替换为你的 GitHub 账号 电子邮件地址。

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

终端会出现

Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/leefan-subt/.ssh/id_ed25519): 

直接回车,就行
表示接受默认文件位置

然后出现以下内容

Enter passphrase (empty for no passphrase):

这是设置SSH的密码
会提示输入第二次确认密码
然后出现

Enter same passphrase again: 
Your identification has been saved in /home/leefan-subt/.ssh/id_ed25519.
Your public key has been saved in /home/leefan-subt/.ssh/id_ed25519.pub.
The key fingerprint is:
SHA256:5qrkrywz547fQiOnOmLbNJ07riMO12XRO0wltArUsyg XXXXXX@qq.com
The key's randomart image is:
+--[ED25519 256]--+
|    .. .o .      |
|   .  o. +       |
|    ...o+        |
|  E ...= .       |
|   .  + S        |
|  ..=o.o .       |
|. .Bo+  .        |
|++B*+o..         |
|==+@%B=          |
+----[SHA256]-----+

表示设置SSH成功

将 SSH 密钥添加到 ssh-agent

输入下面的命令会出现Agent pid XXXXXX

 eval "$(ssh-agent -s)"
#Agent pid XXXXXX xxxxx是一串数字ID

输入下面命令

ssh-add ~/.ssh/id_ed25519

现实

Enter passphrase for /XXXX/.ssh/id_ed25519: 
#这里输入密码回车
就出现下面的
Identity added: /home/leefan-subt/.ssh/id_ed25519 (XXXXXXXX@qq.com)

输入以下命令

ls -al ~/.ssh
会出现下面的
#总用量 24
#drwx------  2 lXXXXX XXXX  4096 4月   9 14:47 .
#drwxr-xr-x 20 lXXXXX XXXX  4096 4月   9 14:31 ..
#-rw-rw-r--  1 lXXXXX XXXX    52 4月   9 14:29 config
#-rw-------  1 lXXXXX XXXX   464 4月   9 14:47 id_ed25519
#-rw-r--r--  1 lXXXXXXXXXX  98 4月   9 14:47 id_ed25519.pub
#-rw-r--r--  1 lXXXXX XXXX  222 4月   9 14:32 known_hosts

这里面有以下结尾的就算本机SSH设置成功
    id_ed25519.pub

新增 SSH 密钥到 GitHub 帐户

输入下面命令

cat ~/.ssh/id_ed25519.pub
会出现密钥
#ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAkr/YlE4vkRYzbsX8yerpC/GT6FnCHv8IPFeZ1enMfe XXXXX@qq.com

是以设置的github账号结尾

然后登陆github官网,点击右上方头像,再点击Setting
在这里插入图片描述
再点击SSH and GPG keys

在这里插入图片描述再点击 NEW SSH KEY
在这里插入图片描述把密钥填写进取,自己命名这台电脑的SSH就完成了
在这里插入图片描述

<think> 我们正在解释一个Git命令,该命令用于克隆一个GitHub仓库到本地。 命令:git clone git@github.com:facebookresearch/SparseConvNet.git 我们需要分解这个命令的各个部分,并解释其含义。 注意:由于我们之前有系统级指令,但当前问题不涉及数学公式,所以不需要使用$...$或$$...$$格式。但需要遵循其他指令,如使用中文,生成相关问题,引用标识等。 另外,根据用户可见层的要求,回答要结构清晰,逐步解决问题。 </think> 好的,我来详细解释 `git clone git@github.com:facebookresearch/SparseConvNet.git` 这条命令的含义: ### 命令分解与解释 1. **`git`** 这是版本控制系统 Git 的命令行工具,用于管理代码历史记录和协作开发。 2. **`clone`** 子命令,表示**完整复制远程仓库到本地**(包括代码、历史记录和分支)。这是获取项目代码的标准方式。 3. **`git@github.com:facebookresearch/SparseConvNet.git`** - **`git@github.com`**: 使用 SSH 协议连接 GitHub(需提前配置 SSH 密钥),比 HTTPS 更安全且无需每次输入密码[^1]。 - **`facebookresearch`**: GitHub 上的组织名称(此处是 Facebook 的 AI 研究团队)。 - **`SparseConvNet`**: 仓库名称,这是一个用于**稀疏卷积神经网络**的高效计算库(常用于处理 3D 点云等稀疏数据)。 - **`.git`**: Git 仓库的标准后缀,表示这是仓库的根路径。 ### 执行结果 运行该命令后: 1. 会在**当前目录**创建一个 `SparseConvNet` 文件夹 2. 将远程仓库的所有内容(包括代码、提交历史、分支)下载到该文件夹 3. 自动设置远程跟踪分支 `origin`(指向该 GitHub 仓库) ### 使用场景示例 ```bash # 在终端执行命令 $ git clone git@github.com:facebookresearch/SparseConvNet.git Cloning into 'SparseConvNet'... remote: Enumerating objects: 4200, done. remote: Counting objects: 100% (583/583), done. Receiving objects: 100% (4200/4200), 15.3 MiB | 3.5 MiB/s, done. ``` 完成后即可在本地使用或修改代码: ```bash $ cd SparseConvNet # 进入项目目录 $ ls # 查看文件 README.md src/ examples/ ... ``` ### 注意事项 1. **需提前配置 SSH 密钥** 若未配置,会提示权限错误。可通过 `ssh -T git@github.com` 测试连接,或改用 HTTPS 链接: ```bash git clone https://github.com/facebookresearch/SparseConvNet.git ``` 2. **仓库权限** 此仓库为公开库(Public),私有库需账户有访问权限
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值