我正在尝试使用公钥身份验证从MacOSX10.10登录到CentOS 7.1在boot2docker上。问题是,当我登录到CentOs时,ssh显示Connection reset by 192.168.99.100 (192.168.99.100是容器的IP地址)。下面是用于构建CentOS映像的Dockerfile:
FROM centos:centos7
MAINTAINER moutend <moutend@gmail.com>
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当然端口号是正确的。所以我不知道为什么会重设连接。我怎么才能解决这个问题?
发布于 2016-02-02 07:23:34
要尝试的第一件事是通过添加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。
您还可以查看其他人在类似的设置中所做的事情(如果您还没有这样做,例如这个设置 )
https://unix.stackexchange.com/questions/259246
复制相似问题