pycharm Git不使用SSH密钥(Windows)

z4iuyo4d  于 2023-01-05  发布在  PyCharm
关注(0)|答案(3)|浏览(256)

我为我的GitLab仓库创建了一个SSH密钥,当我用SSH测试它时,它确实工作,并要求输入密码:

>ssh -T git@gitlab.lrz.de
Enter passphrase for key 'C:\Users\[username]/.ssh/id_ed25519':
Welcome to GitLab, @000[...]!

我还用了

>git remote set-url origin git@gitlab.lrz.de:000[...]/project.git

但是,当我尝试提交并推送到仓库时,Git会要求输入git@gitlab.lrz.de的密码,而不是SSH密钥的密码。
根据文档(https://docs.gitlab.com/ee/ssh/),您可以在配置文件~/.ssh/config中设置ssh键,因此我在此目录中创建了一个文本文件,其内容如下:

Host gitlab.lrz.de
 HostName gitlab.lrz.de
 IdentityFile ~/.ssh/id_ed25519

它仍然不工作,我甚至不确定它是否使用了这个配置文件。我能够让所有东西在Linux服务器上运行,但不能在这台Windows计算机上运行。我通过命令行和Pycharm尝试了一下。

>git --version
git version 2.35.1.windows.1
0yg35tkg

0yg35tkg1#

您可以在git config中自定义git使用的ssh命令,然后在使用任何git命令时传递您的密钥。

git config core.sshCommand "ssh -i ~/.ssh/id_ed25519"
yacmzcpb

yacmzcpb2#

在PyCharm中,尝试导航到VCS -> Git -> Remotes,并确保配置的URL与SSH URL一致(通过浏览器导航到存储库并单击克隆按钮时,您可以看到ssh URL)

cwtwac6a

cwtwac6a3#

如果Windows上有一个或多个ssh键,用于推送到单独的Git仓库:
c:\用户\anbj.ssh\配置:

Host github.com
        Hostname github.com
        User git
        IdentityFile /c/Users/anbj/.ssh/id_ed25519_client_A

    Host otherhub.com
        Hostname otherhub.com
        User git
        IdentityFile /c/Users/anbj/.ssh/id_ed25519_client_B
  • 注意 * 不要在代码中写入冒号(如c:)。令人困惑的是,当运行以下测试时,这将起作用
ssh -vT github.com

......但是一旦你执行Git推送就会失败,比如

git push -u origin develop

移除冒号并使用绝对路径是我在Windows 11上使用Git 2.36.0.windows.1的工作方式。

相关问题