我现在正在使用Git for Windows 2.x的第四版候选版本,并在shell中使用GIT_SSH_COMMAND来避免SSH的主机验证.在Git Bash中我写了这样的东西:
$ GIT_SSH_COMMAND="ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" git push origin master
Run Code Online (Sandbox Code Playgroud)
如何在Windows cmd中执行此类操作?在任何地方找不到任何答案.
Von*_*onC 10
您不必再在Windows中设置环境变量.
使用Git 2.10+(Q3 2016),你也必须设置一个可能配置的GIT_SSH_COMMAND,这比环境变量更容易(并且可以针对特定的回购全局设置,或局部)
见提交3c8ede3通过(2016年6月26日)阮泰玉维战(pclouds).
(由Junio C gitsterHamano合并- -在提交dc21164,2016年7月19日)
添加了一个新的配置变量,
core.sshCommand以指定每个存储库使用GIT_SSH_COMMAND的值.
core.sshCommand:
Run Code Online (Sandbox Code Playgroud)
如果这个变量被设置,
git fetch并且git push将使用指定的命令,而不是ssh当他们需要连接到远程系统.
该命令与GIT_SSH_COMMAND环境变量的格式相同,并在设置环境变量时被覆盖.
这意味着git push可以是:
cd /path/to/my/repo
git config core.sshCommand 'ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no'
# later on
git push origin master
Run Code Online (Sandbox Code Playgroud)
使用Git 2.16(2018年第一季度),您将有一个新的机制来升级现有的线路协议,并证明它可以与旧版本的Git一起使用而不会损害它们.
请参阅提交6464679(2017年10月16日),并由Jonathan Tan()提交0cd8328(2017年9月26日).
请参阅提交94b8ae5,提交3c88ebd,提交19113a2,提交0c2f0d2,提交2609043,提交aa9bab2,提交dfe422d,提交373d70e,提交5d2124b(2017年10月16日)作者:Brandon Williams().(由Junio C Hamano合并- -在提交4c6dad0,2017年12月6日)jhowtanmbrandonw
gitster
ssh:介绍一个simple'ssh变种使用'
ssh'transport时,'-o'选项用于指定应在远程端设置的环境变量.
这允许Git在联系服务器时发送附加信息,通过'GIT_PROTOCOL'环境变量请求使用不同的协议版本,如:"-o SendEnv=GIT_PROTOCOL".不幸的是,并非所有ssh变体都支持将环境变量发送到远程端.
为了解决这个问题,只对-o符合OpenSSH的ssh变体使用' '选项.
这是通过检查ssh命令的基名是'ssh'还是重写ssh变量ssh'(通过ssh.variant配置)来完成的.其他选项,如'
-p'和'-P',用于指定要使用的特定端口,或'-4'和'-6',用于指示应使用IPV4或IPV6地址,所有ssh变体也可能不支持.目前,如果ssh命令的basename不是'
plink'或'tortoiseplink',Git假定该命令是OpenSSH变体.
由于用户配置的ssh命令可能不符合OpenSSH,因此simple如果命令的基本名称与Git已知的变体不匹配,请加强此约束并假设' '的变体.
新的ssh变体'simple'只有主机和命令执行([username@]host命令)作为参数传递给ssh命令.
答案如下:
set GIT_SSH_COMMAND=ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no & git push origin master
Run Code Online (Sandbox Code Playgroud)