在 Windows 版 Git 中使用 GIT_SSH_COMMAND

2023-11-23

我现在使用的是适用于 Windows 2.x 的 Git 第四个候选版本,并在 shell 中使用 GIT_SSH_COMMAND 来避免 SSH 的主机验证。 在 Git Bash 中我写了这样的内容:

$ GIT_SSH_COMMAND="ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" git push origin master

我怎样才能在 Windows cmd 中执行类似的操作?在任何地方都找不到任何答案。


您不必再在 Windows 中设置环境变量。

使用 git 2.10+(2016 年第 3 季度),您还可以设置config for GIT_SSH_COMMAND,这比环境变量更容易(并且可以全局设置,也可以针对特定存储库进行本地设置)

See commit 3c8ede3 (26 Jun 2016) by Nguyễn Thái Ngọc Duy (pclouds).
(Merged by Junio C Hamano -- gitster -- in commit dc21164, 19 Jul 2016)

新的配置变量core.sshCommand已添加到 指定每个存储库使用的 GIT_SSH_COMMAND 值。

core.sshCommand:

如果设置了这个变量,git fetch and git push将使用指定的命令而不是ssh当他们需要连接到远程系统时。
该命令的形式与GIT_SSH_COMMAND环境变量,并且在设置环境变量时被覆盖。

这意味着git push can be:

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

在 Git 2.16(2018 年第一季度)中,您将拥有一种新的机制来升级有线协议,并证明它可以与旧版本的 Git 配合使用,而不会对其造成损害。

See commit 6464679 (16 Oct 2017), and commit 0cd8328 (26 Sep 2017) by Jonathan Tan (jhowtan).
See commit 94b8ae5, commit 3c88ebd, commit 19113a2, commit 0c2f0d2, commit 2609043, commit aa9bab2, commit dfe422d, commit 373d70e, commit 5d2124b (16 Oct 2017) by Brandon Williams (mbrandonw).
(Merged by Junio C Hamano -- gitster -- in commit 4c6dad0, 06 Dec 2017)

ssh: 介绍一个'simple'ssh 变体

当使用 'ssh'运输,'-o' 选项用于指定 应在远程端设置的环境变量。
这允许 Git 在联系服务器时发送附加信息, 通过请求使用不同的协议版本 'GIT_PROTOCOL' 环境变量如下:“-o SendEnv=GIT_PROTOCOL".

不幸的是,并非所有 ssh 变体都支持发送环境信息 变量到远程端。
为了解决这个问题,仅使用 '-o' 与 OpenSSH 兼容的 ssh 变体的选项。
这是通过检查 ssh 命令的基本名称是否为“来完成的”ssh' 或者 ssh 变体被覆盖为 'ssh”(通过ssh.variant配置)。

其他选项如'-p' and '-P',用于指定特定的 要使用的端口,或 '-4' and '-6',用于表示 IPV4 或 应该使用IPV6地址,也可能不是所有ssh都支持 变体。

目前,如果 ssh 命令的基本名称不是 'plink' or 'tortoiseplink',Git 假定该命令是 OpenSSH 变体。
由于用户配置的 ssh 命令可能不兼容 OpenSSH,因此请收紧 这个约束并假设 ' 的变体simple' 如果的基名 命令与 Git 已知的变体不匹配。
新的 ssh 变体 'simple' 将只有主机和要执行的命令([username@]host命令)作为参数传递给ssh命令。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Windows 版 Git 中使用 GIT_SSH_COMMAND 的相关文章

  • GIT:无效路径“.editorconfig”

    从 master 克隆项目时出现以下错误 错误 无效路径 editorconfig 致命 无法签出工作树 警告 克隆成功 但结账失败 您可以使用 git status 检查签出的内容 并使用 git Restore source HEAD
  • 将存储库移至另一台计算机

    我已将存储库从计算机 A 移至计算机 B 我已验证等待推送的提交仍在 B 上 但整个存储库 每个文件 均未暂存 我不想添加它们并将它们作为提交推送 因为从复制存储库到粘贴它 我没有更改每个文件 当我移动存储库时 它只有等待推送的提交 而不是
  • Gitolite 与 LDAP 不工作

    我是 gitolite 的新手 我正在尝试用 gitolite 进行一个非常简单的测试 我已经设置了名为 test repo 的存储库 请注意 除了下面所述之外 我没有修改任何其他内容 我可以在 gitweb 中看到这个仓库 这是仓库配置
  • ssh:连接到主机 bitbucket.org 端口 22:连接超时

    一切都工作得很好 做了一些git pushes 没有问题 今天我决定将我的框架更新到最新版本 因此它稍微改变了我项目的目录结构 因此 在 Bitbucket 中 我创建了一个新的存储库 dev1 project com 并将我的项目文件夹重
  • 为什么 git 无法识别我的本地存储库?

    我刚刚回到一个我已经使用 Git 大约 6 个月的项目 看到了这个 cd d DEVELOP BlenderAe My repo root git status fatal not a git repository or any of th
  • 如何使用 PyGithub 创建新存储库

    如何使用 PyGithub 在 Github 上创建新的存储库 我特别想知道如何使用create repo http jacquev6 net PyGithub v1 github objects AuthenticatedUser htm
  • github Diff 截断错误

    在 github 中发出拉取请求并审查更改时 我们收到了 Diff Truncated 错误 如下所示 任何人都可以帮助解决这个问题 拉取请求可能会触发以下提到的限制之一GitHub 支持 https stackoverflow com a
  • Azure Devops Pipeline YAML 中的 Git 标记名称

    Summary 如何获取 Azure Devops Pipeline YAML 文件中当前 git 标签的名称 我想做什么 我正在 Azure Devops 中设置构建管道 创建新的 git 标签时会触发管道 然后我想构建 docker 镜
  • “git merge --squash”的正确用例是什么?

    有些人喜欢git merge squash由于以下原因 压缩到单个提交使您有机会清理混乱的 WIP 提交 并为您要合并的更改提供良好的理由 https coderwall com p qkrmjq git merge squash http
  • 合并多个 git 存储库

    假设我有一个看起来像这样的设置 phd code phd figures phd thesis 由于历史原因 这些都有自己的 git 存储库 但我想将它们合并为一个 以稍微简化事情 例如 现在我可能会进行两组更改 并且必须执行类似的操作 c
  • 我可以获取两次提交之间 git 子文件夹中已更改文件的列表吗?

    我有一个包含许多文件夹的 git 存储库 我需要找出在两次提交之间这些文件夹之一中的哪些文件发生了更改 有没有一个好的方法来做到这一点 我想你可以坚持走最后的路git diff git diff HEAD HEAD special fold
  • 在 Windows 上使用“perl6”命令和 Git Bash

    使用 Windows 我安装了乐道之星 https rakudo org files和 Git 并确保C rakudo bin and C rakudo share perl6 site bin位于我的 Path 环境变量中 现在 输入pe
  • 从 Eclipse 的历史视图中删除 ORIG_HEAD 和 FETCH_HEAD

    我最近开始使用 Eclipse Kepler 和 EGit 插件 这些分支不是我习惯的 有没有办法永久阻止这些分支的创建 我尝试手动删除它们 但它不起作用 并且我不想在下次获取或变基时保留它们 据我从对您问题的评论中了解到 您只希望这些参考
  • git update-index --no-assume-unchanged 不起作用

    我设置了assume unchanged咬了几个文件 现在我想取消它们 但这不起作用 gt git update index no assume unchanged Gemfile gt git ls files v grep Gemfil
  • git 的精简包是什么?

    我还没有找到太多关于瘦包的信息 并且手册页的信息对此相当含糊 我知道这与连接速度慢有关 但是什么是 连接速度慢 它的优点和缺点是什么 什么时候应该使用它 什么时候不应该使用它 根据记录 手册页 index pack https www gi
  • 警告:引用名称“xxx”不明确

    我想知道为什么我收到 refname is ambigeous 的警告 这是否意味着名称以该字符串开头的分支不超过两个 但这里没有 Thanks git checkout B03799 warning refname B03799 is a
  • 如何防止克隆我的 github 存储库?

    我正在尝试找到一种方法来防止从 github 存储库克隆 例如 我有一个私有存储库 有些人在该存储库中工作 在公司计算机中 团队中的每个人都设置了授权级别 当我在 github 上为某个用户设置授权时 该存储库可在他 她自己的 github
  • gitattributes 中的`* text=auto eol=lf` 会做什么?

    我们的 gitattributes 文件中有这样的内容 text auto eol lf 我想准确理解这是做什么的 第一部分是text auto 来自文档 http git scm com docs gitattributes 这确保了所有
  • 如何摆脱 gerrit 中的错误依赖关系

    看起来 当使用 gerrit 时 默认情况下所有更改都依赖于前一个更改 我不会分支进行新的更改 我只是在主分支上工作 然后将提交的更改推送到远程源 主分支 即使两次提交彼此无关 每次都会创建依赖关系 我遇到了一些问题 这让我认为我没有正确地
  • 如何更改全局 git 设置以在拉取期间进行 git 合并

    目前 我的全局设置设置为在 git pull 期间执行变基操作 我希望它默认将其更改为 git merge 如何更改此设置 TL DR git config global pull rebase false 有点细节 Git 使用配置pul

随机推荐

  • PHP 通过 VPN 发布数据

    我需要连接到一个网络服务behind of a VPN通过 PHP 我的服务器是 Debian Linux Squeeze 是否可以在 Linux 上通过 PHP 来完成此任务 如果可以的话这样做会有风险吗 当VPN连接挂起等时 操作系统或
  • C# 中 JSON 字符串到 CSV 以及 CSV 到 JSON 的转换

    我正在我的 asp net Web API 项目中使用 JSON CSV 文件并尝试使用CSV助手 and ServiceStack Text库但无法使其工作 包含数组的 JSON 文件是动态的 并且可以具有任意数量的字段 我使用 Stre
  • C++ 从数组定义行为中间的指针进行负索引?

    include
  • Spark-NLP 预训练管道只能在 Linux 系统上运行吗?

    我正在尝试设置一个简单的代码 在其中传递数据帧并使用 johnSnowLabs Spark NLP 库提供的预训练解释管道对其进行测试 我正在使用 anaconda 的 jupyter 笔记本 并使用 apache toree 设置 Spa
  • 在linux中定期读取性能计数器

    有没有办法在Linux中定期读取性能计数器 就像是perf stat我正在寻找能够对每个 X 周期进行采样的能力 基本上我希望能够读取某些程序的每 X 个 CPU 周期的指令计数器 执行的指令数 好消息 在下一个内核 Linux 3 9 中
  • 无法在管道中构建 .Net 5

    两周前我使用 Net 5 RC2 创建了一个新的解决方案 我已将其升级到新版本 5 0 0 我正在尝试创建一个标准的 ASP Net 管道来构建它 代理池是 Azure Pipelines 代理规范我已经尝试过 windows 2019 和
  • Javascript:函数.原型.方法

    我想大多数人都看过下面的代码片段 Function prototype method function name func this prototype name func return this 我也知道它会影响所有函数 因为它们都是由
  • 不支持链接到“Gtk.Box.new”

    我是 Vala 的新手 到目前为止我认为它很酷 但我在理解继承方面遇到了困难 我读here我应该使用base 调用父构造函数 好吧 很酷 似乎可以理解 但它对我不起作用 我一直收到标题上的错误 这是我要展示的片段 public class
  • 使用 SciPy 进行逻辑回归

    我正在尝试使用 SciPy 在 Python 中编写逻辑回归代码fmin bfgs功能 但遇到了一些问题 我为逻辑 S形 变换函数和成本函数编写了函数 这些函数工作得很好 我使用了通过固定软件找到的参数向量的优化值来测试这些函数 并且这些函
  • XPath - 如何选择节点的子元素?

    我有一个包含 XHTML 表的 XmlDocument 我想循环遍历它以一次处理一行表格单元格 但下面的代码返回嵌套循环中的所有单元格 而不仅仅是当前行的单元格 XmlNodeList tableRows xdoc SelectNodes
  • .net core 中的 httprequest.UserHostName

    在 HttpRequest 上找不到 UserHostName 属性 任何论坛上都没有任何关于它的信息 这个已经被放弃了吗 任何想法 接受的答案不正确 someHttpContext Request Host对应于HostHTTP 请求中使
  • LINQ to SQL 设计器错误

    每次我在保存后更改设计器中的值时 designer cs 文件都会被删除 谁能告诉我如何解决这个问题 Move using您的指令DataContext cs and DataContext designer cs文件到namespace
  • 如何将 AJAX 检索到的值返回到 JavaScript 中当前函数的父函数?

    我有以下 JavaScript 和 jQuery 代码 function checkEmail email if email length getJSON ajax validate email email function data if
  • Node.js:获取已安装 npm 包的(绝对)根路径

    Task 我正在寻找一种通用方法来获取 Node js 中已安装 npm 包的 绝对 根路径 Problem 我知道关于require resolve 但这会给我入口点 主模块的路径 而不是包的根路径 Take bootstrap sass
  • 获取“td”元素的 jquery 索引

    我有标记 table tr td p class que 1 Who are you p td tr tr class ans td td tr table
  • 将文件(如对象)附加到电子邮件 python 3

    我在网上找到了很多有关如何将本地文件附加到电子邮件的示例 我想做的是将一个类似对象的文件附加到电子邮件中 你为什么问 所以我不必处理清理文件的问题 下面是我的代码和我的错误 经过多次谷歌搜索后 我仍然没有设法让它工作 任何帮助将不胜感激 d
  • Chrome 扩展:如何处理浏览器的禁用和启用事件

    有没有办法在 Chrome 浏览器禁用 启用扩展程序后运行回调 Chrome 管理 API chrome management onEnabled addListener function ExtensionInfo info chrome
  • 如何在over函数中使用partition by和order by?

    我正在使用 SQL Server 2008 R2 我正在尝试编写一个显示以下内容的查询 select productname unitprice categoryid sum unitprice over partition by cate
  • php.ini 中的 pack()非法十六进制数字警告

    我在 php 中使用 pack 时遇到一些问题 currencypair EUR USD buy sell buy alert device token array a a b message Your currencypair buy s
  • 在 Windows 版 Git 中使用 GIT_SSH_COMMAND

    我现在使用的是适用于 Windows 2 x 的 Git 第四个候选版本 并在 shell 中使用 GIT SSH COMMAND 来避免 SSH 的主机验证 在 Git Bash 中我写了这样的内容 GIT SSH COMMAND ssh