Ssh

如何通過腳本在 docker 容器中設置 root 密碼?

  • January 11, 2021

我有一個在主機上執行並創建/啟動/停止 docker 容器的腳本。我想要腳本來更改容器中 root 使用者的密碼。

由於容器是 ssh 伺服器,我嘗試了: sshpass -p 'OLDPASS' ssh root@<container-IP> 'echo -e "NEWPASS\nNEWPASS" | passwd root'

但它不起作用。在繼續並花更多時間調試它之前,我想知道是否有更聰明的方法來做到這一點。

我知道正確的“docker 方式”是製作一個由 Dockerfile 執行的腳本,該腳本從共享卷中提取密碼並將其設置為 root 密碼。這聽起來很複雜,但我知道該怎麼做,並且適用於我使用的另一個 docker 映像。但我不想為這個做。

我只需要一個使用 Docker 或 ssh 以非互動方式更改使用者密碼的命令。

PASSWORD=$(zenity --password --title="Docker" 2>/dev/null)

將打開一個彈出視窗,要求輸入密碼,然後返回。腳本中沒有儲存密碼

如果你有一個需要設置密碼的 docker 容器,而不關心安全性,你可以在 Dockerfile 中添加一條語句:

RUN echo "root:root" | chpasswd

這與 Docker 無關。您需要明確說明passwd您將提供來自 的密碼stdin

user='root'
pass='newpassword'
chpasswd <<<"$user:$pass"

引用自:https://serverfault.com/questions/773224