🖥

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

2023/08/26に公開

解説

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オープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ

Twitter

https://twitter.com/YumaInaura

公開日時

2017-10-02

Discussion