从另一台主机上的另一个容器中将SSH从Docker容器中移入

我有一个在EC2主机上运行的Docker容器,另一个在另一个ec2主机上运行。 我如何从一个到另一个ssh,而不提供任何端口号? 我想要做一些像ssh root @ ip-address-of-container

为了能够在端口22上使用第二个容器,你需要将主机ec2 vm的ssh守护进程阻止。

  1. 一种方法是通过在/ etc / ssh / sshd_config中添加一个类似于3022的东西来更改主机的ssh端口。现在,您可以在运行docker容器时使用-p 22:22,并且可以在ssh他们。 但是,s2的ec2实例在3022上。

  2. 如果你想保持host-vms在端口22上同时启用ssh,则需要创build第二个虚拟以太网接口。 如果你能够设置静态IP,这很容易做到。 像ifconfig eth0:0 192.168.1.11 up 。 但是,在ec2中,这是不可能的,因为你有基于DHCP的IP。

  3. 第三种方法是设置你的.ssh / config文件映射到非标准端口。 它不允许你ssh通过端口22,但至less你不必知道非标准的端口。 这里是一个教程 ,相关的部分如下。

     # contents of $HOME/.ssh/config Host other_docker HostName ec2-host-name-of-other-docker.com Port 22000 User some_user # must be added to authorized keys on other docker host for some_user IdentityFile ~/.ssh/this-docker-private-key 

现在你可以做ssh other_docker