ssh 连接被 192.168.xx 重置

ssh 连接被 192.168.xx 重置

我正在尝试使用公钥身份验证从 Mac OSX 10.10 ssh 登录到 boot2docker 上的 CentOS 7.1。问题是Connection reset by 192.168.99.100当我登录 CentOs 时,ssh 显示(192.168.99.100 是容器的 IP 地址)。这是我用于构建 CentOS 映像的 Dockerfile:

FROM centos:centos7
MAINTAINER moutend <[email protected]>

RUN yum -y update; yum clean all
RUN yum -y install openssh-server

RUN mkdir /var/run/sshd
RUN sed -i 's/^#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
RUN sed -i 's/^PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
ADD id_ecdsa.pub /home/moutend/.ssh/authorized_keys

RUN adduser -g wheel moutend
RUN echo moutend:foobarfoobar | chpasswd
RUN chown -R moutend:wheel /home/moutend
RUN chmod 600 /home/moutend/.ssh/authorized_keys

EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]

以下命令是我执行的。

# On Mac OSX
ssh-keygen -t ecdsa
docker-machine create -d virtualbox dev
docker-machine scp myDockerfile id_ecdsa.pub dev:
docker-machine ssh dev # Login to boot2docker

# On boot2docker
docker build -t test -f myDockerfile .
docker run -d -P test
docker port `docker ps -lq` # Get the port for ssh

然后我收到以下错误消息:

ssh-add id_ecdsa
ssh moutend@`docker-machine ip dev` -p 32772
Connection reset by 192.168.99.100

当然端口号是正确的。所以我不知道为什么会发生连接重置。我该如何解决这个问题?

答案1

首先要尝试的是ssh通过添加以下内容来增加详细程度-v

ssh -v moutend@`docker-machine ip dev` -p 32772

这将为您提供额外的调试信息。

如果这没有帮助,并假设您曾经docker run --name sshtest -d -P test命名容器sshtest

docker logs sshtest

查看是否sshd(仍在)运行。 (这将表明 /etc/ssh/ssh_host_ed25519_key 主机 ssh 密钥丢失,您必须运行 ssh-keygen -A 一次生成这些主机密钥 /etc/ssh/

exec如果它仍在运行,您可以通过-ing 进入容器来检查内部设置的正确性:

docker exec -it sshtest /bin/bash

当然,使用首先docker exec就不需要在很多容器中运行。sshd

您还可以查看其他人在类似设置中所做的操作(如果您还没有,例如这个设置

相关内容