gpt4 book ai didi

linux - 如何修复我的 SSH 配置以在 SSH 代理后面使用 git?

转载 作者:太空宇宙 更新时间:2023-11-04 10:47:09 25 4
gpt4 key购买 nike

所以我目前的情况是我有两个 SSH 服务器,它们都必须从运行 Tomato 的 Linux 路由器后面通过端口 443 提供服务。

为了完成这项工作,我在路由器上安装了一个 SSH 服务器,作为中继到我想实际连接的任何地方。

我正在连接的机器上的 .ssh/config 文件如下所示:

Host destination
HostName <internal IP of destination behind router>
User gogs
Port 22
IdentityFile "<my identity file path>"
ProxyCommand ssh -q relay -W %h:%p
IdentitiesOnly yes

Host relay
HostName <my domain name>
User relay
Port 443
IdentityFile "<my identity file path>"

所以这对 SSH、SCP 甚至 git clone 都适用,但实际上其他 git 命令似乎都不起作用。

当我在 ProxyCommand 上没有 -q 标志的情况下执行 get fetch 时,它会挂起一秒钟并显示 Killed by信号 1.

我见过的所有其他解决方案都需要使用不同的代理命令,例如 nc 命令或 corkscrew。我拥有的路由器非常受限于它附带的命令,而且这两个都不可用。

关于我如何使这项工作有任何想法,或者至少解释为什么我尝试做的事情不起作用?

谢谢!

最佳答案

事实证明我错了,它实际上一直在工作。 Killed by signal 1 在 git 命令行中是正常的,除非你向 SSH ProxyCommand 提供 -q 标志,而我没有这样做最初没有。

混淆是因为我使用的是 IntelliJ IDE。 IntelliJ 默认使用它自己内置的 SSH 客户端,它在不知不觉中没有考虑我的 .ssh/config 。切换到 native SSH 安装可以解决所有问题。

关于linux - 如何修复我的 SSH 配置以在 SSH 代理后面使用 git?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32670888/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com