次のDockerfileがあるとします。
FROM php:7.4
RUN apt-get install -y openssh-server \
&& mkdir /var/run/sshd \
&& echo 'root:root' | chpasswd \
&& sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config \
&& service ssh start
したがって、このDockerfileからDockerインスタンスを作成します。
docker build -t test .
docker run -t -d --privileged test bash
docker exec -it {whatever} bash
その後、マシンにSSHで接続しようとしましたが、機能しません。
root@5e3395ae4b64:/# ssh 127.0.0.1
ssh: connect to host 127.0.0.1 port 22: Connection refused
service ssh start
もう一度実行すると機能しますが、Dockerfileで既に実行しているので、なぜそれを実行する必要があるのかを確認してください。
とにかく、私がした後service ssh start
、パスワード認証は機能しません:
The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established.
ECDSA key fingerprint is SHA256:hQcDdJFTmCZvhJzWbbis5OvCiqx1eagG0b6SD83GbJo.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '127.0.0.1' (ECDSA) to the list of known hosts.
[email protected]'s password:
Permission denied, please try again.
[email protected]'s password:
(パスワードとしてrootを手動で入力しました)
何か案は?
新しいユーザーを作成するだけで、これを機能させることができました。
&& useradd --create-home --base-dir /home newuser \
&& echo "newuser:newuser" | chpasswd \
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加