![Docker - 用户和 SSH 问题](https://linux22.com/image/763457/Docker%20-%20%E7%94%A8%E6%88%B7%E5%92%8C%20SSH%20%E9%97%AE%E9%A2%98.png)
我正在创建一个将托管 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_HOME
为true
这永远不会自动完成(参见useradd 的手册页)