SSH en un contenedor acoplador de otro contenedor en un host diferente

Tengo un contenedor acoplable que se ejecuta en un host EC2 y otro que se ejecuta en otro host ec2. ¿Cómo hago ssh de uno a otro, sin proporcionar ningún número de puerto? Quiero hacer algo como ssh root @ ip-address-of-container

Para que pueda ingresar al segundo contenedor en el puerto 22, necesitará sacar del path al demonio ssh del host ec2 vm.

  1. Una forma es cambiar el puerto ssh de su máquina host añadiendo una input en / etc / ssh / sshd_config a algo así como 3022. Ahora puede usar -p 22:22 cuando ejecute su contenedor docker y pueda pasar ssh entre ellos. Sin embargo, ssh`ing la instancia de ec2 está en 3022.

  2. Si desea mantener host-vms también habilitado ssh en el puerto 22, deberá crear una segunda interfaz virtual de ethernet. Esto es fácil de hacer si puede establecer direcciones IP estáticas. algo así como ifconfig eth0:0 192.168.1.11 up . Sin embargo, en ec2 esto no será posible ya que tienes IP basadas en DHCP.

  3. La tercera forma es configurar su file .ssh / config para asignarlo al puerto no estándar. No le permite pasar por el puerto 22, pero al less no tiene que saber nada sobre el puerto no estándar. Aquí hay un tutorial , y las partes relevantes están debajo.

     # 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 

Ahora puedes hacer ssh other_docker