Connect to Container via ssh

dockerでsshを行う場合にはopensshd-serverをインストールし、設定を行う必要がある。

settings.sh

export DEBIAN_FRONTEND=noninteractive
apt-get install -y openssh-server 
export mkdir /var/run/sshd
export ENV=NOTVISIBLE "in users profile"
echo "export VISIBLE=now" >> /etc/profile
echo "service ssh start" >> /etc/profile

Dockerfile

RUN bash /tmp/setting.sh

EXPOSE <port>
CMD ["/usr/sbin/sshd", "-D"]

ただしssh-serverが起動していなければ接続できない。そのため、コンテナ内で以下のコマンドを使用し、サーバーが止まっていないかを確認すること。

$ service ssh status

start or stop ssh

$ service ssh start
$ service ssh stop

trouble

何度もuser名などを変えているとssh接続できない…

known_hostsファイルの情報と異なるためsshできなくなる

$ ssh-keygen -f "<path of known-hosts file>" -R "[<host>]:<port>"

と実行すればOK! (log標準出力でも表示されるのでそちらを参照!)

参照