【发布时间】:2020-01-04 15:08:56
【问题描述】:
所以,我遵循了this 教程,了解如何使用 Windows CMD 为 github 设置 SSH,一切正常,直到我去克隆一个 repo
git clone git@github.com:{myusername}/{myrepo}.git
我在哪里
git@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.
即使我运行 ssh -T git@github.com,我也会收到预期的消息,告诉我我已通过身份验证。
绞尽脑汁后,我决定在 git bash 上尝试一下。
我注意到的第一件事是正在运行
ssh-add -l
在 git bash 中,我得到了 The agent has no identities.,但是当我在 Windows CMD 上运行相同的命令时,我得到了所有的 SSH 密钥?
因此,在 git bash 中添加我的 ssh 密钥后,我能够克隆我的存储库。
那么,为什么只有在 git bash 上才能做到这一点,而不是在 cmd 或 powershell 上?这与他们似乎使用不同的 ssh 代理有关吗?如果是这种情况,我如何将它们同步在一起?
此外,当我运行以下命令时
ssh -Tv git@github.com
我得到的 cmd
debug1: identity file C:\\Users\\{myuserdirectory}/.ssh/id_rsa type 0
debug1: key_load_public: No such file or directory
但是使用 git bash 我得到了
debug1: identity file /c/Users/{myuserdirectory}/.ssh/id_rsa type 0
另一个区别是在 windows cmd 中我没有得到任何实例
debug1: Will attempt key: ....
当我退出 git bash 并打开另一个 git bash 终端,再次运行 ssh-add -l 时,即使在我之前添加它之后它也会返回 The agent has no identities.,就像它只在每个会话中持续存在,这也是不可取的。
对此的任何帮助将不胜感激!
【问题讨论】: