我知道我可以通过以下方式转发 ssh 配置文件中的多个端口:
Host name
HostName yam.myHost.edu
User myUserName
LocalForward 5901 127.0.0.1:5901
LocalForward 5902 127.0.0.1:5902
[...]
LocalForward 5910 127.0.0.1:5910
有没有更简单的方法来转发一系列端口,而无需为端口添加额外的线路?就像是LocalForward 5901-5910 127.0.0.1:5901-5910
?
答案1
我通常在没有配置的情况下在命令行中交互地执行此操作,如下所示
ssh yam.myHost.edu $(for i in `seq 5901 5920` ;do echo -L $i:localhost:$i ;done)
您还可以生成配置文件行并将其复制/粘贴到您的配置文件中:
for i in `seq 5901 5920` ;do echo "LocalForward $i localhost:$i" ;done
LocalForward 5901 localhost:5901
LocalForward 5902 localhost:5902
LocalForward 5903 localhost:5903
[...]
答案2
简短的回答是否定的。
SSH 不支持端口转发的“范围”。它可以通过更复杂的设置来实现,该设置仅转发 1 个端口,两端的代理将充当路由器,选择正确的本地端口,但我想这远远不是您所需要的。
最方便的方法是在配置中提供多个 LocalForward 行(可以使用小脚本动态创建)。另请注意,SSH 命令接受多个端口的多个 -L 参数,因此以下内容有效:
ssh user@host -L 8000:localhost:8000 -L 8001:localhost:8001
您可以做的是设置一个别名,为您需要的所有端口执行 1 个 ssh 连接。