ProxyJump 之后 ssh ProxyCommand 的配置文件

ProxyJump 之后 ssh ProxyCommand 的配置文件

我关于 ssh 嵌套 ProxyCommand 工作原理的心理模型确实被打破了。

我有以下 ssh 命令,它按照我想要的方式工作(ssh 到 jump.mydomain.com,然后一旦我在 jump.mydomain.com 上,我就 ssh (使用 ProxyCommand)到 server.remote.com。

ssh -t [email protected]                                \
    ssh -o "ProxyCommand='cloudflared access ssh --hostname %h'" \
        [email protected]

我觉得我应该能够在本地 ~/.ssh/config 文件中设置一些规则,这样我就可以输入

ssh [email protected]

并使这些多个步骤“正常工作”,但我不知道这些规则应该是什么。

我认为我的问题可能是重复的ProxyCommand 用于多跳和提示身份验证 提示身份验证,但在这个问题中,代理命令都用于简单的跃点,而我的代理命令似乎不适合链的任何一端。

答案1

这对于我缺乏关于 ProxyJumps 和 ProxyCommands 如何工作和交互的心理模型并没有真正的帮助,但我确实找到了一种方法来完成问题中概述的特定任务。

问完这个问题后,我意识到我可以想出一个替代的 ssh 命令,其中嵌套的 ssh 是 ProxyCommand 的一部分,如下所示:

ssh -o "ProxyCommand=ssh [email protected]            \
                         cloudflared access ssh --hostname %h" \
    [email protected]

现在我有一个 ProxyCommand 可以放入我的 ~/.ssh/config 文件中:

Host server.remote.com
     ProxyCommand ssh [email protected] cloudflared access ssh --hostname %h

一旦我将 ProxyCommand 放入我的配置文件中,我就可以执行以下操作:

ssh [email protected]

虽然我很高兴我已经找到了解决当前问题的方法,但我不确定我是否以任何方式改进了我的思维模式,以帮助我解决下一个难题。

相关内容