目前,我的 git 存储库上有两个远程服务器,一个在我在家时指向 git,另一个在我外出时指向 git-ext。我想简化这一点。下面的 ssh 配置适用于 git 和 git-ext(请注意,match 语句已被注释掉)。如果我取消注释 match 块,据我所知,git 块的行为没有变化。当我在家时,它可以工作,当我外出时,它就不起作用了。
无论我使用 exec 还是 !exec,都没有关系。似乎没有任何变化。我不确定发生了什么,但我不得不说 exec 实际上没有运行。任何帮助都将不胜感激。
这是从 Windows WSL2、Debian 11、OpenSSH_8.4p1 运行的,虽然我也在运行 Debian 12 的 Linux 笔记本电脑上尝试过,结果相同。
host git
hostname 192.168.1.10
user git
identityfile ~/.ssh/id_rsa_git
#match host git !exec "/usr/bin/ping -c1 192.168.1.1"
# proxyjump bastion
host example.com
hostname example.com
user user
identityfile ~/.ssh/id_rsa_cloud
host bastion
hostname 192.168.1.5
user jump
identityfile ~/.ssh/id_rsa_bastion
proxyjump example.com
host git-ext
hostname 192.168.1.10
user git
identityfile ~/.ssh/id_rsa_git
proxyjump bastion
我发现了这个问题。
在这里,我在配置文件本身中使用“git”作为别名 192.168.1.10。匹配行上的“主机”指的是 ssh 进程将连接到的实际主机,在本例中为 192.168.1.10。因此,在我将 git 更改为 192.168.1.10 后,我终于可以在使用详细模式时看到正在执行的 ping。我需要像这样更改: