首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否可以通过反向SSH隧道通过不同的子域连接到不同的客户端?

是否可以通过反向SSH隧道通过不同的子域连接到不同的客户端?
EN

Server Fault用户
提问于 2019-04-19 15:05:53
回答 1查看 772关注 0票数 0

因此,当您使用反向SSH隧道并且只有一个客户端时,它就足够在服务器上运行ssh -R 1999:localhost:22 remote@serverssh -p 1999 localhost了。但如果你有多个客户呢?

是否可以为SSH创建通配符子域,以便客户端可以连接到统一端口(如ssh -R 1999:localhost:22 remote@user1.serverssh -R 1999:localhost:22 remote@user2.server ),并且在服务器上可以通过ssh -p 1999 user1.serverssh -p 1999 user2.server访问不同的客户端。

EN

回答 1

Server Fault用户

回答已采纳

发布于 2019-04-19 16:17:59

不能通过单个ip+port连接代理多个目的地,因为SSH客户端没有指示要与哪个服务器对话。您建议的内容当然是可以实现的(通过为每个名称指定新的地址),而且管理开销很大。

但可能是不可取的。如果每个人都应该通过服务器(称为bastion)连接到转发的机器,那么除了普通端口之外,您还有更多的选项。

例如,您可以将与转发计算机的连接放在服务器上的文件夹中:

代码语言:javascript
复制
ssh -R /minion/user1.example:localhost:22 user1.example@bastion.example
ssh -R /minion/user2.example:localhost:22 user2.example@bastion.example
# or even
ssh -R /minion/$(hostname -f):localhost:22 $(hostname -f)@bastion.example

由于每个套接字都是以连接到的服务器命名的,因此,一个配置适用于所有用户:

代码语言:javascript
复制
Host *.example
  ProxyCommand ssh bastion.example netcat -U /chroot/minion/%h

使用它的命令看起来很干净&很简单:

代码语言:javascript
复制
ssh user@user1.example
ssh user@user2.example

有关%h%n的解释,请参见D4D5,您可能希望使用它们之一。还要注意StreamLocalBindUnlink选项,因为如果套接字已经存在,则不希望安装失败。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/963826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档