SSH的“虚拟主机”

前端之家收集整理的这篇文章主要介绍了SSH的“虚拟主机”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > Is there a name based virtual host SSH reverse proxy?7个
我们有一台运行大量客户机的远程Xen服务器(在Linux上),只有几个IP可用.

每个来宾机应该可以通过外部世界的SSH直接访问.

现在,我们为每台客户机器分配一个单独的域名,指向少数可用IP之一.我们还为该客户机分配端口号.

因此,要访问名为foo的计算机,应该执行以下操作:

$ssh foo.example.com -p 12345

…并访问名为bar的机器:

$ssh bar.example.com -p 12346

foo.example.com和bar.example.com都指向相同的IP.

是否有可能以某种方式摆脱此配置中的自定义端口并配置SSH服务器,侦听该IP(或防火墙或服务器端的任何内容),以便根据域地址将传入连接路由到正确的来宾计算机,以便按照预期的方式工作?

$ssh foo.example.com hostname # prints foo
$ssh bar.example.com hostname # prints bar

请注意,我确实知道.ssh / config和相关的客户端配置解决方案,我们现在正在使用它.这个问题具体是关于零客户端配置解决方案.

解决方法

foo  
                        /
Client ----- Xen server
                        \
                         bar

这听起来像SSH网关是你正在寻找的.

首先,在Xen服务器上创建2个新用户foo,bar:

Xen # useradd foo
Xen # useradd bar

生成密钥对并将公钥复制到foo-server和bar-server:

Xen # su - foo
Xen $ssh-keygen
Xen $ssh-copy-id -i ~/.ssh/id_rsa.pub foo-user@foo-server

(为酒吧用户做同样的事)

现在,您可以从Xen服务器(SSH网关)登录到foo-server和bar-server,而无需提示输入密码.

下一步是让客户端使用公钥对Xen服务器进行身份验证:

Client $ssh-keygen
Client $ssh-copy-id -i ~/.ssh/id_rsa.pub foo@Xen

最后一步是让Xen服务器打开与相应内部服务器的第二个连接.访问Xen,切换到foo,打开〜/ .ssh / authorized_keys文件并更改:

ssh-rsa AAAAB3N...== user@clienthost

至:

command="ssh -t -t foo-user@foo-server" ssh-rsa AAAAB3N...== user@clienthost

样本结果:

$ssh foo-user@Xen
Last login: Thu Nov 10 13:02:25 2011 from Client
$id
uid=500(foo-user) gid=500(foo-user) groups=500(foo-user) context=user_u:system_r:unconfined_t
$exit
logout

Connection to foo-server closed.
Connection to Xen closed.
$ssh bar-user@Xen
Last login: Thu Nov 10 11:28:52 2011 from Client
$id
uid=500(bar-user) gid=500(bar-user) groups=500(bar-user) context=user_u:system_r:unconfined_t
$exit
logout

Connection to bar-server closed.
Connection to Xen closed.
原文链接:https://www.f2er.com/linux/402172.html

猜你在找的Linux相关文章