解决git clone报错Permission denied (publickey). fatal Could not read from remote repository

解决git clone报错Permission denied (publickey). fatal: Could not read from remote repository.

这个错误提示:

[email protected]: Permission denied (publickey). fatal: Could not read from remote repository. 

说明你当前在用 SSH 方式通过 [email protected]:Learning-in-robotics/kinova_learning.git 去 clone,但 GitHub 拒绝了你的 SSH 公钥认证。也就是说,你的本地机器并没有配置好能让 GitHub 接受的 SSH 公钥,或者配置有误。


详细解决步骤

你可以按下面步骤操作:

步骤 1:检查本地是否已有 SSH 密钥

ls -al ~/.ssh 

看是否存在 id_rsa + id_rsa.pubid_ed25519 + id_ed25519.pub 等文件。如果有 .pub 公钥文件,说明可能已经生成过。

如果没有或不确定,就先生成一个新的(下面步骤)。

步骤 2:生成新的 SSH 密钥对(如果你还没有)

假设使用 ed25519(现代推荐):

ssh-keygen -t ed25519 -C "[email protected]"

按提示回车使用默认路径 ~/.ssh/id_ed25519,可以设置 passphrase(也可以不设置,留空)。
如果你希望兼容老系统,也可以生成 RSA:

ssh-keygen -t rsa -b 4096 -C "[email protected]"

成功后会有两个文件,例如:

  • ~/.ssh/id_ed25519(私钥,不要泄露)
  • ~/.ssh/id_ed25519.pub(公钥,用于上传给 GitHub)

步骤 3:把公钥添加到 GitHub

  1. 打开 ~/.ssh/id_ed25519.pub(或你生成的 .pub 文件),复制里面的全部内容(以 ssh-ed25519 AAAA... 开头)
  2. 在 GitHub 网站,登录 → 右上角头像 → Settings → SSH and GPG keys → New SSH key → 填写一个 Title(如 “my laptop”) → 在 Key 栏粘贴你的公钥 → 点击 “Add SSH key”

确保你添加的是 ssh auth 公钥(不是用于签名的密钥),并且没有头尾多余空格或换行。

步骤 4:启动 SSH agent 并加载私钥

# 启动 ssh-agent(大多数系统默认就有)eval"$(ssh-agent -s)"# 然后加载你的私钥(假设用 ed25519 名称) ssh-add ~/.ssh/id_ed25519 

如果使用 RSA 或其他名称,请改为相应路径。

你可以用命令 ssh-add -l 来查看已加载的密钥列表。

步骤 5:测试 SSH 连接是否成功

在终端运行:

ssh -T [email protected] 

期望输出类似:

Hi <你的 GitHub 用户名>! You've successfully authenticated, but GitHub does not provide shell access. 

如果这个命令成功,说明 SSH 设置没问题了。

Could not load content