systemd と sshd を有効にした Docker コンテナに一般ユーザーでSSH接続する方法
April 30, 2023
はじめに # Ansible の Playbook 開発時、Docker コンテナで動作検証するときがある。 場合によっては systemd を有効にしたコンテナに SSH 接続したいときがある。 更に、その接続を一般ユーザーで行いたいときもある。 sshd を有効にしただけのコンテナには一般ユーザーで SSH 接続できる。 しかし、systemd と sshd を同時に有効化するとコンテナに一般ユーザーで SSH 接続できなくなる。 本記事では上記の問題とその対処法について説明する。 ⚠️ 注意 # systemd を有効化するにはコンテナ起動時に --privileged オプションが必要となる。 --privileged オプションを付けて実行すると、コンテナはホストマシンのリソースへの制限がほとんど無くなるため、特別な理由が無い限り systemd の有効化は非推奨。 一般ユーザーで SSH 接続する際に起こる問題 # Docker コンテナにおいて CentOS や RHEL のベースイメージを使用している場合、systemd と sshd を有効にした状態で一般ユーザーで SSH 接続を試みると以下のエラーが発生する。 $ ssh USER@hostname System is booting up. Unprivileged users are not permitted to log in yet. Please come back later. ...