我正在尝试与本地主机上的Docker容器建立ssh连接。我有另一个安装程序(HPE的SLM-UI安装程序,如果这意味着什么)正在Docker容器上运行,需要ssh到它。
我的Dockerfile看起来像这样:
FROM ubuntu
# Install SSH server and create the sshd_config file
RUN apt-get update && apt-get install -y openssh-server
RUN echo 'root:password' | chpasswd
# Enable password authentication
RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
# Start the SSH server
CMD ["/usr/sbin/sshd", "-D"]
字符串
我的Docker-Compose文件看起来像这样(这里只有host 1很重要):
version: '3'
services:
host1:
build:
context: C:\Users\GavinAn\ssh_ubuntu
dockerfile: ssh_ubuntu.dockerfile
ports:
- 5814
- 30303
- 30304
- 30305
- 2222:22
command: tail -F anything
host2:
image: ubuntu
ports:
- 30303
- 30304
- 30305
command: tail -F anything
型
我已经将Docker容器的IP地址(我在本地主机上运行docker inspect
获得)和用户名/密码(分别为root和密码)输入到安装程序中。我还输入了端口22和2222以及ssh端口号。当我尝试运行它时,我得到一个dial tcp [IP ADDRESS:PORT]:connect:connection refused
错误。
从我的本地主机通过ssh root@localhost -p 2222
连接也不起作用,给出错误kex_exchange_identification: Connection closed by remote host
。
1条答案
按热度按时间bkhjykvo1#
这个命令覆盖了docker文件中的CMD,SSH守护进程甚至没有启动,所以从docker-compose.yaml中删除这一行
字符串
除了通过在Dockerfile中添加行来创建工作SSH守护程序的目录之外
型