我在 Windows 10 上使用 GitHub Desktop。我最初使用 HTTPS URL 克隆了一个存储库,但现在我们的组织建议我们必须使用 SSH URL。所以我已经改变了。
我还将我的公共 SSH 密钥 (
id_rsa.pub
) 的内容复制到我的 GitHub 帐户中。我的 SSH 密钥受密码保护。
现在,当我尝试在 GitHub Desktop 中进行同步时,出现以下错误:
在 Git Bash 中它工作得很好(它在每次拉/推之前都会询问我的密码)。知道我需要做什么才能使这项工作成功吗?
正如最近在“Windows 中的 Git 克隆权限失败”中看到的那样,请尝试在以下时间后启动 GitHub Desktop:
(警告:先阅读评论)
git config --global core.sshCommand "'C:\Windows\System32\OpenSSH\ssh.exe'"
这将确保 GitHub Desktop 使用正确的 OpenSSH
ssh.exe
,而不是内部的 OpenSSH,如 desktop/desktop
问题 5641 中所示。
如果 Git bash 之后无法正常工作,您可以:
恢复配置:
git config --global --unset core.sshCommand
或使用 Git for Windows SSH
git config --global core.sshCommand "'C:\Program Files\Git\usr\bin\ssh.exe'"
如果
C:\Program Files\Git\usr\bin\
已经在您的 %PATH%
中,您甚至不需要该配置:Git For Windows 中的 ssh.exe
将是默认选择的。
我能够通过创建一个 ssh 配置文件来使其工作,其内容类似于本要点中提供的内容:
https://gist.github.com/JoaquimLey/e6049a12c8fd2923611802384cd2fb4a
让它工作所需的最少内容是
Host github.com
IdentityFile /c/Users/username/.ssh/id_github
克隆存储库时,我必须使用 URL 选项,因为 Github.com 选项卡将使用 HTTPS url。
在搜索并尝试使用 ssh-agent 失败后,我发现如果你使用 git bash shell 启动 github 桌面,它会提示你输入密码。我在 .bash_profile 中添加了一个别名,以便轻松启动 github 桌面。
eval C:/Users/labrat/AppData/Local/GitHubDesktop/GitHubDesktop.exe
我也将 git core.sshCommand 设置为这个,它适用于 git bash 和 github 桌面:
git config core.sshCommand "'C:\\Program Files\\Git\\usr\\bin\\ssh.exe' -i C:/Home/.ssh/id_rsa_name"
我现在也遇到这个问题了。 SSH 在 git-bash 和 ssh-agent 等中运行良好。
但是如果你使用 TortoiseGit,对我来说最简单的方法是从 TortoiseGit、git-bash 和 github 桌面全局使用 TortoiseGitPlink.exe 作为 ssh 客户端:
git config --global core.sshCommand "'C:\Program Files\TortoiseGit\bin\TortoiseGitPlink.exe'"
默认情况下,这将使用 Pageant 缓存当前会话的密码。设置完成后,GitHub Desktop 立即开始再次使用 ssh 存储库工作。
我遇到了这个问题,但与我的 Docker 容器 ssh 密钥不在我的 windows .ssh/ 文件夹中有关。
%用户配置文件%.ssh/
相对 2019 年编辑: