Amazon web services 从不同主机上的另一个容器SSH到docker容器

Amazon web services 从不同主机上的另一个容器SSH到docker容器,amazon-web-services,ssh,docker,centos6.5,Amazon Web Services,Ssh,Docker,Centos6.5,我有一个docker容器运行在EC2主机上,另一个运行在另一个EC2主机上。如何在不提供任何端口号的情况下从一个ssh连接到另一个ssh?我想做一些像 sshroot@ip-容器的地址要使您能够通过ssh连接到端口22上的第二个容器,您需要将主机ec2 vm的ssh守护进程移开 一种方法是通过添加条目来更改主机的ssh端口 在/etc/ssh/sshd_-config中,类似于3022。现在您可以使用-p 22:22当您运行docker容器并能够ssh时 在他们之间。但是,ssh正在3022上运

我有一个docker容器运行在EC2主机上,另一个运行在另一个EC2主机上。如何在不提供任何端口号的情况下从一个ssh连接到另一个ssh?我想做一些像
sshroot@ip-容器的地址

要使您能够通过ssh连接到端口22上的第二个容器,您需要将主机ec2 vm的ssh守护进程移开

  • 一种方法是通过添加条目来更改主机的ssh端口 在/etc/ssh/sshd_-config中,类似于3022。现在您可以使用-p 22:22当您运行docker容器并能够ssh时 在他们之间。但是,ssh正在3022上运行ec2实例

  • 如果希望在端口22上同时启用主机VM ssh,请 然后需要创建第二个虚拟以太网接口。这 如果您能够设置静态IP,那么这很容易做到。差不多
    ifconfig eth0:0 192.168.1.11以上
    。然而,在ec2中,这将不会发生 可能是因为您有基于DHCP的IP

  • 第三种方法是设置.ssh/config文件以映射到非标准端口。它不允许您通过端口22进行ssh,但至少您不必了解非标准端口。下面是一个例子,相关部分如下

    # 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\u-docker

    打开vswitch是最简单的解决方案

    我还没有对此进行测试,但您可能可以执行类似于
    ssh的操作hostUser@xxx.xxx.xxx.xxx“嘘containerUser@xxx.xxx.xxx.xxx“
    使用ssh的
    命令
    参数。

    为此,您的第二个容器需要一个IP地址,该地址可以从第一个容器路由。由于Docker的开箱即用行为是使用私有IP地址,这一点很重要。这就是为什么人们倾向于将端口映射到外部主机上的不同端口号。另一种方法是使用“覆盖网络”,例如weave。(我为weave工作)此外,还需要在容器内安装并启动ssh服务器。ssh不像在普通发行版中那样在容器中开箱即用。@Bryan-谢谢!我要试试看@Dharmit-是的,我在容器中运行SSH服务器。我可以使用SSH从主机到容器,或者通过提供映射端口从外部计算机到容器。我想要实现的是通过提供docker containerStack Overflow的ip地址来实现ssh,它是一个用于编程和开发问题的站点。这个问题似乎离题了,因为它与编程或开发无关。请参见帮助中心中的。也许或者会是一个更好的提问的地方。