将SSH选项传递给git clone

我试图运行没有SSH检查存储库主机的密钥的git clone 。 我可以这样做,从SSH:

 ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no user@host 

有没有办法将相同的SSH选项传递给git clone命令?

编辑:有一个限制,我不能修改~/.ssh/config或该机器上的任何其他文件。

将它们添加到你的~/.ssh/config

 Host host HostName host User user SshOption1 Value1 SshOption2 Value2 

Host条目是您要在命令行中指定的内容, HostName是真实的主机名。 它们可以是相同的,或者Host条目可以是别名。 如果您不在命令行中指定user@ ,则使用User条目。

如果您必须在命令行上configuration它,请将GIT_SSH环境variables设置为指向其中包含选项的脚本。

最近发布的git 2.3支持一个新的variables“GIT_SSH_COMMAND”,它可以用来定义一个带有参数的命令。

 GIT_SSH_COMMAND="ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" git clone user@host 

$GIT_SSH_COMMAND优先于$GIT_SSH ,并由shell解释,允许包含额外的参数。

这里是一个棘手的例子,如何通过使用GIT_SSHvariables传递ssh参数:

 $ echo 'ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no $*' > ssh $ chmod +x ssh $ GIT_TRACE=1 GIT_SSH="$PWD/ssh" git clone user@host 

注:上面的行是terminal命令行,你应该粘贴到你的terminal。 它会创build一个文件ssh ,使其可执行并执行它。

如果你想通过私钥的select,请检查如何告诉git使用哪个私钥? 。

指定不同的键的另一个选项是git config core.sshCommand与git 2.10+(Q3 2016)

这是Boris 回答中描述的环境variables的替代)

参见NguyễnTháiNgọcDuy( pclouds )的 commit 3c8ede3 (2016年6月26日) 。
(由Junio C gitster合并- gitster – in commit dc21164 ,2016年7月19日)

已经添加了一个新的configurationvariablescore.sshCommand来指定GIT_SSH_COMMAND为每个存储库使用的值。

$GIT_ASKPASS$GIT_PROXY_COMMAND类似,我们也从configuration文件中读取,然后回到$GIT_SSH_COMMAND

这对于select不同的私钥来定位同一主机(例如github)

 core.sshCommand: 

如果设置了这个variables,当他们需要连接到远程系统时, git fetchgit push会使用指定的命令而不是ssh
该命令与GIT_SSH_COMMAND环境variables的forms相同,并且在GIT_SSH_COMMAND环境variables时被覆盖。

这意味着git clone可以是:

 cd /path/to/my/repo git config core.sshCommand 'ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no' # later on git clone host:repo.git 

如果您想要将所有回购应用于此,请在user1300959添加注释时使用全局configuration

 git config --global core.sshCommand ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no 

我认为更新git版本> = 2.3并使用GIT_SSH_COMMAND="ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" git clone user@host是赌注选项,但如果不可能,@ josh-李先生给了一个很好的select,但请,更新你的答案缩进SSHconfiguration文件。

 Host host HostName host StrictHostKeyChecking no UserKnownHostsFile /dev/null