从另一台主机上的另一个容器SSH到docker容器

时间:2014-11-11 09:29:15

标签: amazon-web-services ssh docker centos6.5

我有一个在EC2主机上运行的docker容器,另一个在另一个ec2主机上运行。如何在不提供任何端口号的情况下从一个ssh到另一个?我想做点什么 ssh root @ ip-address-of-container

3 个答案:

答案 0 :(得分:6)

为了能够在端口22上ssh到第二个容器,你需要让主机ec2 vm的ssh守护进程不受影响。

  1. 一种方法是通过添加条目来更改主机的ssh端口 在/ etc / ssh / sshd_config中类似于3022.现在你可以使用-p 22:22当你运行你的docker容器并且能够ssh 它们之间。但是,ssh的ec2实例是在3022年。

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

  3. 第三种方法是将.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
    
  4. 现在你可以ssh other_docker

答案 1 :(得分:0)

答案 2 :(得分:0)

我尚未对此进行测试,但是您可以使用ssh的ssh hostUser@xxx.xxx.xxx.xxx 'ssh containerUser@xxx.xxx.xxx.xxx'参数来进行类似command的操作。