Chr*_*ris 13 ssh bash passwd docker
我有一个在主机上运行并创建/启动/停止 docker 容器的脚本。我希望脚本更改容器内 root 用户的密码。
由于容器是 ssh 服务器,我尝试了:
sshpass -p 'OLDPASS' ssh root@<container-IP> 'echo -e "NEWPASS\nNEWPASS" | passwd root'
但它不起作用。在继续并花更多时间调试它之前,我想知道是否有更聪明的方法来做到这一点。
我知道正确的“docker 方式”是制作一个由 Dockerfile 运行的脚本,该脚本从共享卷中提取密码并将其设置为 root 密码。这听起来很复杂,但我知道怎么做,并且适用于我使用的另一个 docker 映像。但我不想为这个而做。
我只需要一个使用 Docker 或 ssh 以非交互方式更改用户密码的命令。
Ulf*_*son 15
PASSWORD=$(zenity --password --title="Docker" 2>/dev/null)
Run Code Online (Sandbox Code Playgroud)
将打开一个弹出窗口,要求输入密码,然后返回。脚本中没有存储密码
如果您有一个需要设置密码的 docker 容器,但又不太关心安全性,您可以在 Dockerfile 中添加一条语句:
RUN echo "root:root" | chpasswd
Run Code Online (Sandbox Code Playgroud)
这与 Docker 无关。您需要明确说明passwd您将提供来自stdin.
user='root'
pass='newpassword'
chpasswd <<<"$user:$pass"
Run Code Online (Sandbox Code Playgroud)
这在 Ubuntu 14.04.4 LTS 上完美运行:
在重建容器的脚本(应该在“主机”上运行)中,添加以下行:
$PASS='<a-good-password>'
echo -e "$PASS\n$PASS" | sudo docker exec -i <container-id-or-name> passwd
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
63854 次 |
| 最近记录: |