尝试通过 SSH 连接到 docker 容器时权限被拒绝(密码不正确)

问题描述 投票:0回答:1

我正在尝试创建一个 docker 容器来 ssh 进入,以便在 Ubuntu 20.04 上进行单元测试。使用下面的 DockerFile:

# Use a base image with the desired OS (e.g., Ubuntu, Debian, etc.)
FROM ubuntu:latest

# Install SSH server
RUN apt-get update && \
    apt-get upgrade -y
RUN apt-get install openssh-server -y supervisor
RUN apt-get install nano

# Create an SSH user
RUN useradd -rm -d /home/sshuser -s /bin/bash -g root -G sudo -u 1000 sshuser

# Set the SSH user's password (replace "password" with your desired password)
RUN echo 'sshuser:password'

# Allow SSH access
RUN mkdir /var/run/sshd

RUN /usr/bin/ssh-keygen -A

# Expose the SSH port
EXPOSE 22

# Start SSH server on container startup
CMD ["/usr/sbin/sshd", "-D"]

设置

docker build -t ssh_server .

docker run -d -p 22:22 ssh_server

运行时

ssh sshuser@localhost
系统会提示我输入密码。但每当我输入正确的密码时,我都会收到
Permission denied, please try again.
错误。有趣的是,这在 Windows 上运行没有问题。

完整日志:

(base) joe@Ubuntu:~/git-repos/datashuttle/tests/ssh_test_images$ docker build -t ssh_server .
[+] Building 1.4s (12/12) FINISHED                               docker:default
 => [internal] load build definition from Dockerfile                       0.0s
 => => transferring dockerfile: 651B                                       0.0s
 => [internal] load metadata for docker.io/library/ubuntu:latest           1.2s
 => [internal] load .dockerignore                                          0.0s
 => => transferring context: 2B                                            0.0s
 => [1/8] FROM docker.io/library/ubuntu:latest@sha256:1b8d8ff4777f36f19bf  0.0s
 => CACHED [2/8] RUN apt-get update &&     apt-get upgrade -y              0.0s
 => CACHED [3/8] RUN apt-get install openssh-server -y supervisor          0.0s
 => CACHED [4/8] RUN apt-get install nano                                  0.0s
 => CACHED [5/8] RUN useradd -rm -d /home/sshuser -s /bin/bash -g root -G  0.0s
 => CACHED [6/8] RUN echo 'sshuser:password'                               0.0s
 => CACHED [7/8] RUN mkdir /var/run/sshd                                   0.0s
 => CACHED [8/8] RUN /usr/bin/ssh-keygen -A                                0.0s
 => exporting to image                                                     0.0s
 => => exporting layers                                                    0.0s
 => => writing image sha256:cc8b8b9f8a500fb399ae7ef2ea7ef0a667706dde81330  0.0s
 => => naming to docker.io/library/ssh_server                              0.0s
(base) joe@Ubuntu:~/git-repos/datashuttle/tests/ssh_test_images$ docker run -d -p 22:22 ssh_server
cf70b859e7c1889d32f0e866697c6d273fb6bde27bb5d9f80de0ae546f5cc6dd
(base) joe@Ubuntu:~/git-repos/datashuttle/tests/ssh_test_images$ ssh sshuser@localhost
sshuser@localhost's password: 
Permission denied, please try again.

任何帮助将不胜感激,因为我已经用头撞墙有一段时间了。

docker ssh
1个回答
0
投票

首先要做的事情:我不知道为什么它在 Windows 上对你有效,我认为给定这个 Dockerfile 它根本不应该工作:D

这一行:

RUN echo 'sshuser:password'

除了显示文本“sshuser:password”之外不执行任何操作。

您需要设置密码,然后才能正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.