Ssh
如何通過腳本在 docker 容器中設置 root 密碼?
我有一個在主機上執行並創建/啟動/停止 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"