とあるOSS開発をしているときに、SSHトンネル接続の検証環境が必要になった。
というわけで書いてみた。
FROM debian:12.1-slim
RUN apt-get update && apt-get install -y openssh-server
RUN mkdir /var/run/sshd && \
sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config && \
sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config && \
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
# 公開鍵をイメージ内にコピーする
COPY id_rsa.pub /root/authorized_keys
RUN mkdir -p ~/.ssh && \
mv ~/authorized_keys ~/.ssh/authorized_keys && \
chmod 0600 ~/.ssh/authorized_keys
CMD ["/usr/sbin/sshd", "-D"]
自分でイメージを作成するときはdebianのslimイメージを使用することが多いように思う
以前検証環境を作るといったらもっぱらVMを使って作っていたが、Linuxを使って良いのであれば、
こういう一時的な検証環境をサクッと作るのにDockerは非常に便利だと思う