LoginSignup
20
21

More than 5 years have passed since last update.

Dockerでsshdがバックグラウンドで起動しない場合の対策

Last updated at Posted at 2014-05-15

15/09/09 追記

現在のDockerには docker exec コマンドがあるため、sshしなくても、ホストマシンからexecして入れるようになっている。
リモートマシンから直接乗り入れたいという場合でなければ、sshd入れるよりコンテナをシンプルに保てるので、こちらがオススメです


Dockerのドキュメントにある方法をScientific Linux (CentOS)にあわせてDockerfileを書く

Dockerfile
FROM jtang/scientificlinux-6.4-x86_64
RUN yum install -y openssh-server openssh-clients
RUN echo 'root:root' |chpasswd
EXPOSE 22

buildしてrunする

docker build -t test/sshd .
docker run -d -p 10022:22 test/sshd /usr/sbin/sshd -D

sshを試してもconnection refusedで動かない
なんでだろうと思って

docker run -t -i -p 10022:22 test/sshd /bin/bash

で中に入ってコマンドを叩いてみると、ssh_host_rsa_keyとssh_host_dsa_keyがないって言われた
今まで /etc/init.d/sshd start とかでしか起動したことがなかったのでわからなかったのだが、どうやらこの時に、ここらへんのキーが自動生成されるらしい
Dockerfileを編集する

Dockerfile
FROM jtang/scientificlinux-6.4-x86_64
RUN yum install -y openssh-server openssh-clients
RUN echo 'root:root' |chpasswd

# 追加分
RUN /usr/bin/ssh-keygen -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N ""
RUN /usr/bin/ssh-keygen -t dsa -b 1024 -f /etc/ssh/ssh_host_dsa_key -N ""

EXPOSE 22

これでpassなしにrsa_keyが生成される。この状態でbuildしてrunしてssh接続すると入れた

20
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
21