无法使用ssh克隆现有存储库,并且ssh config看起来不错

时间:2019-03-17 09:26:56

标签: git github permission-denied git-clone

这是我的情况: 我有两个私有存储库。

  • git@github.com:syra37fGIT / Angular.git
  • git@github.com:syra37fGIT / temp.git

当前,我通过克隆为其添加了一个遥控器。

$ git remote -v
origin  git@github.com:syra37fGIT/temp.git (fetch)
origin  git@github.com:syra37fGIT/temp.git (push)
我认为

ssh配置正确,因为:

我同时生成了私钥(id_rsa)和公钥(id_rsa.pub)

$ ls -al ~/.ssh
total 28
drwxr-xr-x 1 Pietro 197121    0 Mar  5 00:18 ./
drwxr-xr-x 1 Pietro 197121    0 Mar 17 09:19 ../
-rw-r--r-- 1 Pietro 197121 3389 Mar  5 00:18 id_rsa
-rw-r--r-- 1 Pietro 197121  747 Mar  5 00:18 id_rsa.pub
-rw-r--r-- 1 Pietro 197121 2790 Mar  5 00:29 known_hosts

公钥已正确设置到我的github帐户中个人设置/ SSH和GPG密钥

public key setted on account

私钥似乎也已正确注册

$ eval `ssh-agent -s`
Agent pid 7696

$ ssh-add
Identity added: /c/Users/Pietro/.ssh/id_rsa (syra37fGIT@yandex.com)

作为证明,我可以在没有问题的情况下将提交推送到添加的存储库中(因为ssh处于活动状态,不需要密码)

(master)$ echo -e "\ndamn u damn" > README.txt
(master)$ git add .
(master)$ $ git commit -m "damn u commit"
          [master dae7dfd] damn u commit
            1 file changed, 2 insertions(+), 4 deletions(-)
(master)$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 8 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 263 bytes | 263.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
To github.com:syra37fGIT/temp.git 
  54bc492..dae7dfd  master -> master

并且身份验证测试也可以工作

$ ssh -T git@github.com
Hi syra37fGIT! You've successfully authenticated, but GitHub does not provide shell access.

鉴于此,当我尝试克隆其他存储库时,出现以下错误消息 ...

$ git clone git@github.com:syra37fGIT/Angular.git
Cloning into 'Angular'...
\302\226git@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.

建议的所有技巧 https://help.github.com/en/articles/error-permission-denied-publickey 很满意(我在Windows计算机上)。我在哪里做错了?

只是一个提示:可能有两个存储库中的一个首先被https克隆,然后被转换为ssh(FROM HTTPS TO SSH)...我无法确定这是否是一个线索。问题。

更新:如下面的注释所示,问题在于,虽然在外观上回购字符串是正确的,但实际发送的字符串是错误的。该问题已解决。

1 个答案:

答案 0 :(得分:1)

seen here一样,如果命令是复制粘贴的结果,则它可以包含不可见的特殊字符,这会使命令失败。

在这种情况下要进行的一项基本检查是再次手动键入命令,然后查看问题是否仍然存在。

commented here一样,“ \302\226”也称为0xC2 0x96 U+0096 in UTF-8 encoding
参见more here

  

用于此目的的原始来源可能是某些单字节8位编码中的字节0x96,在此过程中某处已不正确地对其进行了代码转换。可能这最初是一个Windows CP1252破折号“ ”,该编码的字节值为96,已经转换为UTF-8,就好像它是latin-1 (ISO/IEC 8859-1)一样,不是罕见。