我的 .ssh/config 文件中有以下条目:
Host myhost
Hostname localhost
User me
ServerAliveInterval 30
ProxyCommand ssh -q external-relay /usr/bin/nc -w 90 localhost 9889
myhost
非常简单,它允许我从其 NATed 网络之外通过反弹进行访问external-relay
。
大多数时候我只想通过 SSH 连接到myhost
,而不创建任何 SSH 隧道,但有时我想创建各种隧道以用于不同的目的。
-L
如今,当我使用 ssh 时,我只需手动添加隧道条目myhost
,但越来越难以记住我需要哪些端口集用于哪个目的。
我可以将这些自定义端口转发命令添加为别名,但我真正想要的是在我的.ssh/config
文件中有单独命名的条目,基本上创建连接myhost
并添加所需的隧道,但我不想myhost
每次都复制整个配置,因为如果/当我更改时external-relay
,我不想记住在每个使用它的条目中更改它。
有没有办法创建一个条目继承从条目中myhost
,并简单地附加LocalForward
该特定隧道案例所需的指令?
答案1
你应该能够做到:
Host myhost-*
Hostname localhost
User me
ServerAliveInterval 30
ProxyCommand ssh -q external-relay /usr/bin/nc -w 90 localhost 9889
其次是:
Host myhost-1
LocalForward ...
Host myhost-2
RemoteForward ...
:
myhots-1
并将myhost-2
从中派生设置myhost-*
(但不能覆盖它们)。
您一定要看一下 Characteristics 部分的开头(了解选项如何应用于连接)和 ssh_config 手册页的 PATTERNS 部分。