我们有一台运行大量客户机的远程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 fooXen # useradd bar
生成密钥对并将公钥复制到foo-server和bar-server:
Xen # su - fooXen $ssh-keygenXen $ssh-copy-ID -i ~/.ssh/ID_rsa.pub foo-user@foo-server
(为酒吧用户做同样的事)
现在,您可以从Xen服务器(SSH网关)登录到foo-server和bar-server,而无需提示输入密码.
下一步是让客户端使用公钥对Xen服务器进行身份验证:
ClIEnt $ssh-keygenClIEnt $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@XenLast login: Thu Nov 10 13:02:25 2011 from ClIEnt$IDuID=500(foo-user) gID=500(foo-user) groups=500(foo-user) context=user_u:system_r:unconfined_t$exitlogoutConnection to foo-server closed.Connection to Xen closed.
$ssh bar-user@XenLast login: Thu Nov 10 11:28:52 2011 from ClIEnt$IDuID=500(bar-user) gID=500(bar-user) groups=500(bar-user) context=user_u:system_r:unconfined_t$exitlogoutConnection to bar-server closed.Connection to Xen closed.总结
以上是内存溢出为你收集整理的SSH的“虚拟主机”全部内容,希望文章能够帮你解决SSH的“虚拟主机”所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)