怎样能做一个 SSH 区分账户的代理?

2022-09-02 13:54:28 +08:00
 Cat7373

需求是这样的,有一台公网服务器(下称 A ),A 服务器 SSH 端口是正常的 22 ,日常维护即使用 22 登陆;

现在 A 服务器新建账户,如 V2EX ,在起 authorized_keys 中添加公钥;

另有一个服务器(下称 B ),无公网 IP ,与 A 内网互通;

需实现 SSH 级代理,使 A 和 B 共用 A 上的 22 端口,通过 V2EX 认证时,自动代理到 B 服务器(并执行 B 服务器上 authorized_keys 中指定的程序),通过其他用户名认证时,正常登陆到 A 服务器;

大概如图所示,求问大佬们如何实现此类代理:

713 次点击
所在节点    问与答
4 条回复
ljpCN
2022-09-02 13:59:23 +08:00
换个思路,用不同的域名区分目标机器,所有的域名解析到 A ,A 上面跑一个 nginx 根据域名转发到不同的机器。
Cat7373
2022-09-02 14:00:31 +08:00
@ljpCN #1 可要处理的是 ssh 请求,不是 http ,而且 22 端口不能换
eason1874
2022-09-02 14:04:57 +08:00
修改服务器的 sshd_config

Match User v2ex
ForceCommand "这里写登录内网机器命令,应该可以吧"
LxnChan
2022-09-02 14:47:30 +08:00
我经历过一个本质上差不多的过程,应该可以参考一下

https://lxnchan.cn/git-operas.html#%E5%8D%95%E6%9C%BA%E5%A4%9AGithub%E8%B4%A6%E5%8F%B7

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/877242

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX