msysgit git 克隆忽略 ssh 配置

msysgit git clone ignores ssh config

我已经安装了 msysgit 并且 git 使用正确的 ssh.exe。所有命令都在msysgitshell(程序文件x86sh.exe)中执行。 然后我将我的 ~/.ssh/config 文件设置为这个

LogLevel DEBUG1

Host bitbucket.com
  HostName bitbucket.com
  PreferredAuthentications publickey
  IdentityFile /d/ssh/bitbucket.ppk
  IdentitiesOnly yes

那么ssh bitbucket.com效果不错:

$ ssh bitbucket.com
debug1: Connecting to bitbucket.com [131.103.20.173] port 22.
debug1: Connection established.
debug1: identity file /d/ssh/bitbucket.ppk type -1
debug1: identity file /d/ssh/bitbucket.ppk-cert type -1

但是当我尝试 git clone git@bitbucket.org:User/reponame.git ssh 时,调试消息显示 ssh 甚至不尝试选择 bitbucket ppk,而是尝试使用默认密钥:

$ git clone git@bitbucket.org:user/reponame.git
Cloning into 'reponame'...
debug1: Connecting to bitbucket.org [131.103.20.168] port 22.
debug1: Connection established.
debug1: identity file /c/Users/bob/.ssh/id_rsa type -1
debug1: identity file /c/Users/bob/.ssh/id_rsa-cert type -1
debug1: identity file /c/Users/bob/.ssh/id_dsa type -1
debug1: identity file /c/Users/bob/.ssh/id_dsa-cert type -1
debug1: identity file /c/Users/bob/.ssh/id_ecdsa type -1
debug1: identity file /c/Users/bob/.ssh/id_ecdsa-cert type -1
debug1: identity file /c/Users/bob/.ssh/id_ed25519 type -1
debug1: identity file /c/Users/bob/.ssh/id_ed25519-cert type -1

我没主意了。

$ where git
C:\Program Files (x86)\Git\bin\git.exe
C:\Program Files (x86)\Git\cmd\git.exe

git clone git@bitbucket.org:User/reponame.git 会查找 ~/.ssh/id_rsaid_rsa.pub,而不是 /d/ssh/bitbucket.ppk.

应该起作用的(因为 ssh bitbucket.com 起作用)是:

git clone bitbucket.com:User/reponame.git

这实际上会使用 ~/.ssh/config 文件中定义的参数。

bitbucket.com 是配置文件中的条目(它实际上可以命名为任何名称),但 HostName 必须确实是 bitbucket.org,这是 Git 存储库。

原因是我自己注意力不集中。 Bitbucket 使用 bitbucket.org 进行回购。 Afaik,在它使用 bitbucket.com.

之前