在 Windows 上通过 JetBrains IDE(即 PyCharm)使用 Git 时如何自动使用特定的 SSH 密钥?

How to automatically use a specific SSH key when using Git through a JetBrains IDE (i.e. PyCharm) on Windows?

我想在 Windows 上通过 PyCharm 使用 Git 时使用特定的 SSH 密钥。

我尝试过的事情:

我还能做什么?

显然 JetBrains IDEs(如 PyCharm)使用 Windows 命令行与 git.
交互 参见 here

所以第一步是启动 Windows 命令提示符并检查您是否可以通过特定的 SSH 密钥使用 Git。
在我的情况下,这是不可能的,即使我配置了位于 ~/.ssh/configconfig 文件(当通过 Git Windows 访问时)或 C:\Users\<Me>\.ssh\config.
这就是为什么我的问题中提到的SO帖子没有解决我的问题。

第二步是确定 Git 在通过 Windows 命令提示符访问时使用哪个配置文件。
This 为我提供了 Windows 上的 Git 可以使用名为 ssh_config(而不是 config)并位于 [=65] 附近的内部 ssh 配置文件的线索=](而不是在您的主目录的子目录中)。
我使用 where git 找到了 Git 的位置,它表示 C:\Program Files\Git-2.16.1\cmd\git.exe
所以我要找的配置位于 C:\Program Files\Git-2.16.1\etc\ssh\ssh_config.

第三步调整 ssh_config 文件类似于 config 文件。
对我来说,这看起来像这样:

Host <some-name>
        HostName gitlab.com
        IdentityFile C:\Users\<Me>\.ssh\<my-non-default-key>
        # Prevents usage of the default IdentityFile
        # See: 
        IdentitiesOnly yes
        # Prevents warning when pulling from Gitlab.
        # See: 
        UpdateHostKeys no

第四步也是最后一步是更改 Git 存储库中的遥控器,使其使用 ssh_config 文件中指定的名称 <some-name>
首先使用 git remote -v.
获取原始遥控器 这给出了这样的东西:
git@gitlab.com:some/subdirs/to/the/repository.git
现在将 gitlab.com 部分替换为 ssh_config 文件中指定的 <some-name>,如下所示:
git remote set-url origin git@<some-name>:some/subdirs/to/the/repository.git

总结:

  • 当使用像 PyCharm 这样的 JetBrains IDE 时,它使用 Git 而不是 Windows 命令提示符
  • 在Windows命令提示符
  • 中找出Git的位置
  • 调整位于Git位置的ssh_config文件
  • 设置存储库的远程 url,使其使用 ssh_config 文件中指定的主机名