192.168.xxでSSH接続をリセットする

192.168.xxでSSH接続をリセットする

私は公開鍵認証を使用してMac OSX 10.10のboot2dockerからCentOS 7.1へのSSHを試しています。問題は、Connection reset by 192.168.99.100CentOsにログインすると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

同様の設定で他の人が行ったことも確認できます(まだ行っていない場合は、例:この設定

関連情報