这是我的情况: 我有两个私有存储库。
当前,我通过克隆为其添加了一个遥控器。
$ 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密钥
私钥似乎也已正确注册
$ 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)...我无法确定这是否是一个线索。问题。
更新:如下面的注释所示,问题在于,虽然在外观上回购字符串是正确的,但实际发送的字符串是错误的。该问题已解决。
答案 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)一样,不是罕见。