我在 Windows 上使用 git 时遇到配置问题。git 使用的公钥与 ssh 在同一主机上使用的密钥不同。简而言之,
ssh git@somewhere
要求输入密钥密码并正常工作,而
$ git remote -v show
somewhere ssh://git@somewhere/path/to/repo
$ git push somewhere main
git@somewhere: Permission denied (publickey).
fatal: Could not read from remote repository.
如上所述,失败。
答案1
问题在于某些路径配置,我不知道该在哪里更改。
我使用 procmon 调查了两个ssh.exe
进程打开了哪些文件。Git 的 ssh 尝试在 中找到密钥,%APPDATA%\SPB_Data\.ssh\
而命令提示符中的 ssh 使用来自 的密钥%userprofile%\.ssh\
(注意:%userprofile%
默认情况下是您的C:\Users\<username>\
)。
在此之前,从“Git bash”窗口运行 ssh 时也会连接失败。
该%userprofile%\.ssh\
目录中没有任何密钥。我已将密钥从复制%userprofile%\.ssh\
到%APPDATA%\SPB_Data\.ssh\
,现在 Git 可以正常连接。