ssh Conexão redefinida por 192.168.x.x

1

Estou tentando fazer o login do SSH do Mac OSX 10.10 no CentOS 7.1 no boot2docker usando a autenticação de chave pública. O problema é que ssh mostra Connection reset by 192.168.99.100 quando eu faço o login no CentOs (192.168.99.100 é o endereço IP do contêiner). Aqui está o meu Dockerfile para construir a imagem do CentOS:

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"]

Os seguintes comandos são o que eu fiz.

# 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

Em seguida, recebi a mensagem de erro abaixo:

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

Claro que o número da porta está correto. Então eu não sei porque a redefinição de conexão acontece. Como posso resolver isso?

    
por moutend 02.02.2016 / 08:01

1 resposta

1

A primeira coisa a tentar é aumentar a verbosidade de ssh adicionando -v :

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

que fornecerá informações extras de depuração.

Se isso não ajudar, e supondo que você usou docker run --name sshtest -d -P test para nomear o contêiner sshtest ;

docker logs sshtest

para ver se sshd está (ainda) em execução. ( Isto mostrará que as chaves ssh do host /etc/ssh/ssh_host_ed25519_key estão faltando, e você tem que executar ssh-keygen -A uma vez para gerar as chaves do host em /etc/ssh/ )

Se ainda estivesse em execução, você pode verificar a configuração do interior para correção por exec -ing no recipiente:

docker exec -it sshtest /bin/bash

Claro que usar docker exec elimina a necessidade de executar sshd em muitos contêineres em primeiro lugar.

Você também pode ver o que outras pessoas fizeram em configurações semelhantes (se você ainda não tiver, por exemplo, esta configuração

    
por 02.02.2016 / 08:23