amazon-web-services - 从不同主机上的另一个容器通过 SSH 连接到 docker 容器

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

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

最佳答案

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

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

  2. 如果您想在端口 22 上保持 host-vms 也启用 ssh,您 然后需要创建第二个虚拟以太网接口(interface)。这个 如果您能够设置静态 IP,这很容易做到。就像是 ifconfig eth0:0 192.168.1.11 向上。但是,在 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
    

现在你可以做 ssh other_docker

关于amazon-web-services - 从不同主机上的另一个容器通过 SSH 连接到 docker 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26861550/

相关文章:

amazon-web-services - 即使允许 AWS codebuild 也无法访问 repo

go - 如何在 Go 中为 SSH 生成 ECDSA key 对?

git - 无法通过 ssh 将私钥添加到 docker build

shell - 如何防止对我的 docker 容器的 root 访问

postgresql - 无法在 Ubuntu 14.04.1 Docker 容器上获取​​ postgresql-9.3-postgis-2.1

amazon-web-services - 无法向 ECS 集群注册 ec2 实例

json - Amazon athena 无法读取 S3 JSON 对象文件,并且 Athena 选择查询返回 JSON 键列的空结果集

amazon-web-services - AWS CDK - StepFunction - 在进入下一步之前修改输入

linux - Gitlab runner 和钥匙串(keychain)

docker - Docker Compose和本地缓存的镜像