我知道已经有很多类似的问题了,但到目前为止我还找不到任何描述或解决/解决我的确切问题。
我刚刚使用以下命令在 Bitbucket 中设置了我的个人 ssh 密钥:
ssh-keygen -t ed25519 -C "${myMail}
并且它在我的
id_ed25519.pub
目录中成功创建了 id_ed25519
和 %USERPROFILE%\.ssh
。
我按照官方文档复制并粘贴到 Bitbucket 的公钥,如下所示:
clip < id_ed25519.pub
当尝试通过 TortoiseGit 克隆存储库时,如下所示:
ssh://git@${repoUrl}:${sshPort}/${pathToProject}.git
我收到以下错误:
No supported authentication methods available (server sent: publickey)
*注意:自从第一次从该服务器克隆以来,我接受了服务器密钥/指纹。
来自 TortoiseGit 的额外输出:
git.exe clone --progress -v "ssh://git@${repoUrl}:${sshPort}/${pathToProject}.git" "C:\${targetLocationPath}"
Cloning into 'C:\${targetLocationPath}'...
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
git did not exit cleanly (exit code 128) (4625 ms @ 03.03.2024 11:54:51)
此外,从克隆网址中删除
ssh://
部分(如此处建议)也没有帮助 - 这里请求只是超时了。
尝试通过 Git Bash 直接通过 CLI 克隆存储库后,它成功运行,没有出现任何问题(不过,在此过程中我需要再次接受 服务器密钥/指纹):
$ git clone ssh://git@${repoUrl}:${sshPort}/${pathToProject}.git "${targetLocationPath}"
Cloning into '${targetLocationPath}'...
The authenticity of host '[${host}]:${sshPort} ([${ipAddress}]:${sshPort})' can't be established.
RSA key fingerprint is SHA256:${fingerprint}.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[${host}]:${sshPort}' (RSA) to the list of known hosts.
...
=> 我在设置中缺少什么,或者我还需要检查/配置什么才能使其现在也能与 TortoiseGit 一起使用? 这两个工具不应该使用相同的“子系统”和 ssh 密钥来访问存储库吗? -> 我如何检查和验证?
截至目前,它仍然只能通过Git Bash 直接工作,但不能在 TortoiseGit 中工作。他们的钥匙本身显然不是问题并且工作正常。
使用工具:
编辑:
经过更多搜索后,我发现了 ssh-agent 服务。然后我发现以下有关正在使用的不同 ssh 实现/代理的相关帖子,这可能会导致此问题的解决方案:
对我来说,当前的修复方法是将 TortoiseGit 使用的 ssh 客户端更改为 Git 使用和提供的客户端:“C:\Program Files\Git\usr in\ssh.exe”。
您可以在
TortoiseGit -> Settings -> Network
然后在 SSH 部分执行此操作。我选择了 Git 提供的 OpenSSH 客户端,以使 CLI 和 TortoiseGit 之间的配置更加相似,而不是选择 Windows 中的客户端。
--
默认情况下,TortoiseGit 使用 PLink/TortoiseGitPlink (-> "C:\Program Files\TortoiseGit in\TortoiseGitPlink.exe") 客户端,其中 Windows/Git (CLI) 使用 OpenSSH。
=> 注意:Windows 使用自己的 OpenSSH 客户端,例如“C:\Windows\System32\OpenSSH\ssh.exe”,但 Git 也带来了它自己的 ssh 客户端,例如在“C:\Program Files\Git\usr in\ssh.exe”中。
--
深入研究此问题的优质资源如下: