git clone git@github.com:xxx.git Permission denied (publickey) 问题解决办法

本文详细介绍了当Git无法通过HTTP克隆远程分支时,如何使用SSH方式进行替代。主要内容包括生成公私钥对、将公钥配置到远程Git服务器,以及具体操作步骤。适合遇到Git克隆权限问题的开发者阅读。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

From: https://www.cnblogs.com/restart/p/4633928.html

如果git无法通过普通的http去clone远程分支,可以选用ssh方式去连接。这时需要配置相应的公私钥(本地生成公私钥对儿,把公钥配置到远程git服务器上即可)。

具体的错误提示如下:

要debug这个问题,可以用 ssh -vT 参数,比如下面: 

解决方案:

首先要设置你的系统的公共,私有密钥(ssh-keygen)

方法:

cd ~/.ssh && ssh-keygen

其次,把公共密钥放置到github上,可以通过剪贴板来做这事,例如:

然后到远程git用户的Manage Account->SSH keys里去Add key

 

把公共密钥放置到github上,可以通过剪贴板或者Notepad++来复制。

然后再去Git Bash里正常clone就好用了。

 

转载于:https://www.cnblogs.com/Raul2018/p/10347509.html

### 解决 PlatformIO 使用 ESP-IDF 框架时因 Git 权限问题导致的编译错误 当在 PlatformIO 中使用 ESP-IDF 框架时,如果遇到 `git clone permission denied (publickey)` 错误,通常是由于 Git 配置不正确或仓库地址不可用引起的。以下是针对该问题的详细解决方案: #### 1. 更改仓库地址为 HTTPS 默认情况下,PlatformIO 可能尝试通过 SSH 地址克隆仓库。如果未正确配置 SSH 密钥,则会导致权限拒绝错误。可以通过将仓库地址更改为 HTTPS 来避免此问题。例如,在 `platformio.ini` 文件中指定以下内容: ```ini [env:esp32dev] platform = espressif32 board = esp32dev framework = espidf extra_scripts = ; 使用 HTTPS 地址代替 SSH 地址 https://github.com/espressif/esp-idf.git ``` 此方法避免了对 SSH 密钥的需求[^1]。 #### 2. 配置 SSH 密钥 如果需要继续使用 SSH 地址,则必须确保本地已正确配置 SSH 密钥。运行以下命令以生成新的 SSH 密钥(如果尚未生成): ```bash ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` 然后将生成的公钥(通常位于 `~/.ssh/id_rsa.pub`)添加到 GitHub 账户的 SSH 密钥列表中[^2]。 #### 3. 测试 SSH 连接 在完成 SSH 密钥配置后,测试与 GitHub 的连接是否正常: ```bash ssh -T git@github.com ``` 如果成功,应返回类似以下的消息: ``` Hi username! You've successfully authenticated, but GitHub does not provide shell access. ``` 这一步确保了 SSH 连接无误[^2]。 #### 4. 手动克隆并指定路径 如果仍然无法解决权限问题,可以手动克隆所需的仓库,并在 `platformio.ini` 文件中指定其路径。例如: ```ini [env:esp32dev] platform = espressif32 board = esp32dev framework = espidf extra_scripts = ; 指定本地路径 /path/to/local/esp-idf ``` 手动克隆命令如下: ```bash git clone --recursive https://github.com/espressif/esp-idf.git /path/to/local/esp-idf ``` 此方法绕过了 PlatformIO 自动克隆的过程[^1]。 #### 5. 清理缓存并重新安装依赖 有时,PlatformIO 的缓存可能导致问题。可以尝试清理缓存并重新安装依赖项: ```bash pio package uninstall framework-espidf pio package install framework-espidf ``` 这一步确保了所有依赖项是最新的并且没有损坏[^3]。 --- ### 注意事项 - 确保本地 Git 已正确安装并配置。 - 如果使用公司网络或代理,可能需要额外配置 Git 的代理设置。 - 在修改 `platformio.ini` 文件时,注意保持正确的语法格式。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值