search
LoginSignup
24
Help us understand the problem. What are the problem?

posted at

updated at

Docker 初心者 — ssh で接続できるサーバーを立てる

解説

dockerだからといって特別な何かをするわけではない。

通常のサーバーと同じように、

  • openssh をインストールする
  • パスワードを設定する
  • 必要な設定を書き換える

ということを順におこなう。

動作例 (Ubuntuの場合)

Dockerfile

sed で強引に ssh の設定ファイルを書換えたりしている

FROM ubuntu:16.04

RUN apt-get update && apt-get install -y openssh-server
RUN mkdir /var/run/sshd
RUN echo 'root:screencast' | chpasswd
RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config

# SSH login fix. Otherwise user is kicked off after login
RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd

ENV NOTVISIBLE "in users profile"
RUN echo "export VISIBLE=now" >> /etc/profile

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

( Dockerize an SSH service | Docker Documentation より )

イメージの作成

$ docker image build . -t ssh_server

コンテナの実行

適当なポートを繋げる。

$ docker run -d -p 10000:22 ssh_server

[コンテナID] が標準出力されるので控えておく。

sshコマンドでアクセス

パスワードを聞かれるので入力する。( この例では screencast )

ssh root@127.0.0.1 -p 10000

環境

  • Docker version 17.06.1-ce, build 874a737

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

Twitter

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
What you can do with signing up
24
Help us understand the problem. What are the problem?