我有一个在 EC2 主机上运行的 docker 容器,另一个在另一个 ec2 主机上运行。如何在不提供任何端口号的情况下从一个连接到另一个连接?我想做类似的事情 ssh root@ip-address-of-container
最佳答案
为了让您能够通过 ssh 连接到端口 22 上的第二个容器,您需要让主机 ec2 vm 的 ssh 守护进程移开。
一种方法是通过添加一个条目来更改主机的 ssh 端口 在/etc/ssh/sshd_config 到 3022 之类的东西。现在你可以使用 -p 22:22 当您运行 docker 容器并能够 ssh 时 它们之间。但是,ssh`ing ec2 实例是在 3022 上。
如果您想在端口 22 上保持 host-vms 也启用 ssh,您 然后需要创建第二个虚拟以太网接口(interface)。这个 如果您能够设置静态 IP,这很容易做到。就像是
ifconfig eth0:0 192.168.1.11 向上
。但是,在 ec2 中,这不会是 可能,因为您有基于 DHCP 的 IP。第三种方法是设置您的 .ssh/config 文件以映射到非标准端口。它不允许您通过端口 22 进行 ssh,但至少您不必了解非标准端口。这是 tutorial ,相关部分如下。
# 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
关于amazon-web-services - 从不同主机上的另一个容器通过 SSH 连接到 docker 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26861550/