SSHサーバーを立てるDockerfile(ubuntu:18.04)
モチベーション
Dockerfile
code:Dockerfile
FROM ubuntu:18.04
RUN apt update
RUN apt install -y openssh-server
RUN mkdir /var/run/sshd
RUN echo 'root:root' | chpasswd
RUN sed -ri 's/^#?PermitRootLogin\s+.*/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
想定している使い方
以下でSSHサーバーを起動する。
code:bash
docker run -it -p 2022:22 --init mysshserver
以下でログイン。ログインパスワードは"root"。
code:bash
ssh -p 2022 root@localhost
おまけ: docker-buildをDockerfileなしで行う
以下のコマンドを使えばDockerfileなしでイメージが作成できる。
code:bash
docker build -t mysshserver - <<'EOS'
FROM ubuntu:18.04
RUN apt update
RUN apt install -y openssh-server
RUN mkdir /var/run/sshd
RUN echo 'root:root' | chpasswd
RUN sed -ri 's/^#?PermitRootLogin\s+.*/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
EOS