这让我疯了。
以下是ssh-agent
知道的内容:
> ssh-add -l
2048 SHA256:JHUL/QtZf4e6rle0yRVEy7jVThtdNJ0SH+Wy1kf5th8 C:\Users\tig\.ssh\foocorp_rsa (RSA)
2048 SHA256:JPyqmrvgX/abfXDzrrf1p2c1wgPn19uj7xthJeCzOSs \users\tig\.ssh\id_rsa (RSA)
我的/.ssh/config
:
Host gitlab.foocorp.com
HostName gitlab.foocorp.com
User git
PreferredAuthentications publickey
IdentityFile ~/.ssh/foocorp_rsa
我已完成ssh-add
并输入了我的密码。
如果我执行以下操作,系统不会提示您输入foocorp_rsa
密码:
> ssh -v gitlab.foocorp.com
OpenSSH_for_Windows_7.6p1, LibreSSL 2.6.4
debug1: Reading configuration data C:\\Users\\tig/.ssh/config
...
debug1: Offering public key: RSA SHA256:JHUL/QtZf4e6rle0yRVEy7jVThtdNJ0SH+Wy1kf5th8 C:\\Users\\tig/.ssh/foocorp_rsa
...
Welcome to GitLab, Tig!
请注意路径语法:C:\\Users\\tig/.ssh/foocorp_rsa
我有git调试选项,所以我可以看到它在做什么($env:GIT_SSH_COMMAND="ssh -v"
)。
> git pull
...
OpenSSH_7.7p1, OpenSSL 1.0.2o 27 Mar 2018
debug1: Reading configuration data /c/Users/tig/.ssh/config
debug1: /c/Users/tig/.ssh/config line 49: Applying options for gitlab.foocorp.com
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Connecting to gitlab.foocorp.com [10.11.11.67] port 22.
debug1: Connection established.
...
debug1: Host 'gitlab.foocorp.com' is known and matches the ECDSA host key.
debug1: Found key in /c/Users/tig/.ssh/known_hosts:18
...
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering public key: RSA SHA256:JHUL/QtZf4e6rle0yRVEy7jVThtdNJ0SH+Wy1kf5th8 /c/Users/tig/.ssh/foocorp_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 279
Enter passphrase for key '/c/Users/tig/.ssh/foocorp_rsa':
它不应该问我密码,但它是!
我只能说ssh-agent
与身份文件路径不匹配。它正在存储C:\Users\tig\.ssh\foocorp_rsa
,但是由git / ssh /c/Users/tig/.ssh/foocorp_rsa
传递,而不是匹配它们。
或者,我完全不了解这是如何工作的。
我不知道这是否与Powershell和Windows或其他相关。我以前从未遇到过这个问题。
有任何想法或建议吗?