扩展或继承 .ssh/config 中的现有条目

kto*_*orn 2 ssh ssh-tunnel

我的 .ssh/config 文件中有以下条目:

Host myhost
    Hostname localhost
    User me
    ServerAliveInterval 30
    ProxyCommand ssh -q external-relay /usr/bin/nc -w 90 localhost 9889
Run Code Online (Sandbox Code Playgroud)

非常简单,它允许我myhost从 NATed 网络外部访问,通过反弹external-relay.

大多数时候我只想通过 SSH 连接到myhost,而不创建任何 SSH 隧道,但有时我想创建各种隧道,用于不同的目的。

现在我只是-L在 ssh 时手动附加隧道条目,myhost但是越来越难以记住我需要哪些端口集用于哪个目的。

我可以将这些自定义端口转发命令添加为别名,但我真正想要的是在我的.ssh/config文件中有单独的命名条目,这些条目基本上创建连接myhost并添加所需的隧道,但我不想复制整个myhostconfig 每次,因为如果/当我更改external-relay,我不想记住在使用它的每个条目中更改它。

有没有办法创建一个从条目继承myhost条目,并简单地附加该LocalForward特定隧道案例所需的指令?

小智 5

你应该能够做到:

Host myhost-*
    Hostname localhost
    User me
    ServerAliveInterval 30
    ProxyCommand ssh -q external-relay /usr/bin/nc -w 90 localhost 9889
Run Code Online (Sandbox Code Playgroud)

其次是:

Host myhost-1
    LocalForward ...

Host myhost-2
    RemoteForward ...
:
Run Code Online (Sandbox Code Playgroud)

myhots-1并将myhost-2myhost-*(但不能覆盖它们)派生设置。

您绝对应该查看 ssh_config 手册页的说明部分的开头(以了解如何将选项应用于连接)和 PATTERNS 部分。