我做虚拟环境。
如何创build“ssh虚拟主机”环境?
host - vm01(ssh01.host.com) 202.xx.xx.xx - vm01(ssh02.host.com) 202.xx.xx.xx(same IP)
ssh [email protected] – > ssh01 ssh [email protected] – > ssh02
你期望用户login的环境有什么不同?
在Apache环境中,当连接到为虚拟主机configuration的IP时,Apache会在该configuration块内检查是否像DocumentRoot一样被覆盖,而不是默认虚拟主机或默认服务器configuration。
那么你想通过两个主机名来呈现的unix环境有什么不同呢?
上面使用的名称并不清楚在主机操作系统之后是否有两个不同的VM,或者是否只有一个。
如果是前者,那么只用一个外部IP地址就没有办法做到这一点 – 要么给主机提供两个IP地址,并设置转发,以便一个IP上的端口22转到vm01,另一个IP上的端口22转到到vm02上的端口22,或者您必须使用不同的端口,在这种情况下,主机上的端口22转到vm02端口22,主机上的端口8022转到vm02上的端口22。
如果是后者,那么你需要解释你想让用户登陆的两个地方之间的差异,以获得更好的反馈。
只要将这两个子域指向相同的IP?
据我所知, sshd_config与httpd的<VirtualHost>指令没有任何相同之处,允许您根据客户端用于连接的主机名创build完全不同的环境。
不,没有与OpenSSH的虚拟主机等价的东西。 你可以做的最好的事情是可能在不同的端口上运行不同的openSSHds,如果你想做的是在openssh的configuration文件中可以改变的话。 (即ssh01.host.com:22,ssh01.host.com:23)
有一件事你可以做的是有不同的SSH密钥启动不同的命令(例如,XM控制台/等等/)
您需要为虚拟机使用非标准的ssh端口。
我在我的服务器上使用openVZ,并有三个VID为101,102,201的虚拟机。 我想,通过101端口将101个虚拟机分配到102到102个虚拟服务器会很方便。 要连接到硬件节点,您可以使用22端口。
所以我把这个路由规则添加到了硬件节点上的iptables:
#iptables -t nat -A PREROUTING -d xxxx -p tcp -m tcp --dport 101 -j DNAT --to-destination 192.168.2.101:22 #iptables -t nat -A PREROUTING -d xxxx -p tcp -m tcp --dport 102 -j DNAT --to-destination 192.168.2.102:22 #iptables -t nat -A PREROUTING -d xxxx -p tcp -m tcp --dport 201 -j DNAT --to-destination 192.168.2.201:22 #/etc/init.d/iptables save
如果你希望这对最终用户来说是相当透明的,我build议你在不同的端口上设置两个不同的SSH守护进程。 这和我的家庭设置非常相似,在这里,通过SSH进入路由器,但是端口2222上的SSH让我进入我的服务器。
然后在你的sshconfiguration中添加如下内容:
Host ssh01.host.com HostName 202.xx.xx.xx Host ssh02.host.com HostName 202.xx.xx.xx Port 2222
现在,你可以' ssh [email protected] '和ssh将做正确的事情。