尝试 SSH 时连接被拒绝。但端口 22 未被阻止。Ping 可以正常工作

尝试 SSH 时连接被拒绝。但端口 22 未被阻止。Ping 可以正常工作

尝试 SSH 时连接被拒绝。但端口 22 未被阻止。Ping 工作正常。我正在运行 CentOS 7 VM 和开源 Docker。我想从其他 VM 或其他 Docker 容器通过 SSH 连接到 Docker 容器。我该怎么做?

我可以从 Docker 容器通过 SSH 连接到其共享主机 VM。我无法从主机 VM 通过 SSH 连接到 Docker 容器,因为出现错误“连接被拒绝”。我无法从容器本身通过 SSH 连接到 Docker 容器,因为“连接被拒绝”。nmap 结果显示,端口 1 到 1000 已关闭,但未在每个容器上进行过滤。我针对 docker inspect 命令结果中的 IP 地址进行了测试。

我可以使用 Docker 容器的 IP 地址来 ping 彼此。容器之间的 sftp 因“连接被拒绝”而失败。鉴于端口 22 上没有防火墙规则,是什么导致了这个“连接被拒绝”问题?

如果您不熟悉 Docker,鉴于 nmap 排除了端口阻塞,您能否为我提供可能的根本原因?Ping 有效。Docker 容器的功能与 Linux 服务器非常相似。

答案1

由于nmap端口 1 到 1000 已关闭(特别是端口 22 已关闭),您可能无法sshd在容器内运行。一些选项:

  • 修改你的Dockerfilesshd可以开始了。
  • 进入你的容器(例如docker exec -it <container-id> /bin/bash)并sshd自行启动。

如果您确实只是希望sshd能够在容器内获取 shell,docker exec那么上述命令可能就是您真正需要的。

答案2

最可能的解释是 docker 容器没有运行 sshd。您可以像这样在正在运行的容器中获取 shell(这可能会解决您试图解决的真正问题):

docker exec -it bash

相关内容