Docker - 用户和 SSH 问题

Docker - 用户和 SSH 问题

我正在创建一个将托管 Web 应用程序的 docker 容器。该容器是一个 ubuntu18.04 vm,其中运行着 flask 应用程序 + gunicorn。我正在尝试配置 ssh,但出现了一些问题。

在我的docker文件中,我做了类似的事情:

RUN useradd -s /bin/bash -m username

这工作正常,用户被添加。我有一个单独的进程在后台运行,并添加到 /home/username/.ssh/authorized_keys 以允许无密码 ssh。这再次起作用,当实际 ssh 发生时,怪异就会出现。

当我通过 ssh 登录时,我看到 $HOME 设置为 /root 而不是 /home/username。如果我尝试 cd ~/,它会被拒绝访问,因为它试图转到 /root。为什么 HOME 不正确,但我以正确的用户身份连接?

注意:在下面的输出中,我更改了用户名,因为它有点具有识别性

输出:

Welcome to Ubuntu 18.04.5 LTS (GNU/Linux 4.15.0-112-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage
This system has been minimized by removing packages and content that are
not required on a system that users do not log into.

To restore this content, you can run the 'unminimize' command.
Last login: Thu Feb 11 17:38:55 2021 from 172.16.1.7
-bash: /root/.bash_profile: Permission denied
username@bb29610ab373:/username/app$
username@bb29610ab373:/username/app$ cd ~
-bash: cd: /root: Permission denied

passwd文件中的用户:

username@bb29610ab373:/username/app$ cat /etc/passwd | grep username
username:x:1000:1000::/home/username:/bin/bash

这让我很困惑。如能得到任何帮助我将不胜感激。

答案1

您需要添加-m--create-home使用该命令或将环境更改CREATE_HOMEtrue

这永远不会自动完成(参见useradd 的手册页

相关内容