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標準出力でも表示されるのでそちらを参照!)
- 詳しくはこちら