String docker容器-ssh adduser passwd

String docker容器-ssh adduser passwd,string,ssh,quotes,passwd,sshpass,String,Ssh,Quotes,Passwd,Sshpass,我已经构建了一个脚本“createcontainer.sh”来自动创建一个容器。我对脚本的调用如下: ./createdocker.sh newuser newpass 在脚本内部,这两个参数被分配给变量,如下所示: USERNAME=$1 <-- thus USERNAME=newuser PASSWORD=$2 <-- thus PASSWORD=newpass SCRIPT="adduser $USERNAME;\

我已经构建了一个脚本“createcontainer.sh”来自动创建一个容器。我对脚本的调用如下:

./createdocker.sh newuser newpass
在脚本内部,这两个参数被分配给变量,如下所示:

USERNAME=$1     <-- thus USERNAME=newuser
PASSWORD=$2     <-- thus PASSWORD=newpass
SCRIPT="adduser $USERNAME;\                                    <-- add newuser
echo -e $PASSWORD\n$PASSWORD | (passwd --stdin $USERNAME);\    <-- set newpass
echo ssh username: $USERNAME;\
echo ssh password: $PASSWORD;\
echo Instance Login Success;\
exit"
[root@netunique docker-sshd]# ./signup_createdocker.sh newuser newpass
Instance Created
adduser newuser;echo -e newpass\nnewpass | (passwd --stdin newuser);echo ssh username: newuser;echo ssh password: newpass;echo Instance Login Success;exit
Warning: Permanently added '[localhost]:32936' (RSA) to the list of known hosts.
Changing password for user newuser.
passwd: all authentication tokens updated successfully.    <-- appears 'set newpass' worked
ssh username: newuser
ssh password: newpass
Instance Login Success
这将告诉“createcontainer.sh”脚本使用root$ORIGINALPASSWORD登录$PORT上容器的$IP,自动接受SSH主机密钥,然后执行$script,其定义如下:

USERNAME=$1     <-- thus USERNAME=newuser
PASSWORD=$2     <-- thus PASSWORD=newpass
SCRIPT="adduser $USERNAME;\                                    <-- add newuser
echo -e $PASSWORD\n$PASSWORD | (passwd --stdin $USERNAME);\    <-- set newpass
echo ssh username: $USERNAME;\
echo ssh password: $PASSWORD;\
echo Instance Login Success;\
exit"
[root@netunique docker-sshd]# ./signup_createdocker.sh newuser newpass
Instance Created
adduser newuser;echo -e newpass\nnewpass | (passwd --stdin newuser);echo ssh username: newuser;echo ssh password: newpass;echo Instance Login Success;exit
Warning: Permanently added '[localhost]:32936' (RSA) to the list of known hosts.
Changing password for user newuser.
passwd: all authentication tokens updated successfully.    <-- appears 'set newpass' worked
ssh username: newuser
ssh password: newpass
Instance Login Success

请注意,上面的newpass\nnewpass用引号(“)括起来,而在脚本中,整个字符串用引号(“)括起来,特别是echo-e语句。如果有人能建议如何解决这个问题,这将对我有很大帮助。提前感谢您的帮助。

之前

SCRIPT="adduser $USERNAME;\                                    <-- add newuser
echo -e $PASSWORD\n$PASSWORD | (passwd --stdin $USERNAME);\    <-- set newpass
echo ssh username: $USERNAME;\
echo ssh password: $PASSWORD;\
echo Instance Login Success;\
exit"
我必须在$PASSWORD\n$PASSWORD(我以前尝试过)周围加上引号(“),但我还必须用黑色斜杠(\)来避免它们,如下图所示:\”

SCRIPT="adduser $USERNAME;\
echo -e \"$PASSWORD\n$PASSWORD\" | (passwd --stdin $USERNAME);\
echo ssh username: $USERNAME;\
echo ssh password: $PASSWORD;\
echo Instance Login Success;\
exit"