创建用户名并远程设置密码

时间:2014-04-11 04:04:15

标签: shell ubuntu ssh

我正在运行生成强密码的脚本,并将输入作为用户名和调用 用于创建用户名和密码的远程脚本。

脚本就像这样

USERNAME=$1

PASS=`cat /dev/urandom|tr -dc 'a-zA-Z0-9-!@#%()+{}$|:?='|fold -w 10 | head -n 1| grep -i '[!@#%()+{}|:$?=]'`

ssh -i /home/ubuntu/test.pem  ubuntu@192.168.10.32 "sudo /bin/bash /root/useradd.sh $USER $PASS "

如果密码不包含任何额外的字符,它可以正常工作,&和$。

e.g。

ssh -i /home/ubuntu/test.pem  ubuntu@192.168.10.32 "sudo /bin/bash /root/useradd.sh testuser1 12345 "

它失败了,密码如下。

ssh -i /home/ubuntu/test.pem  ubuntu@192.168.10.32 "sudo /bin/bash /root/useradd.sh testuser1 v|9q4TT8={ "

是否有解决方法。

此致

1 个答案:

答案 0 :(得分:1)

使用封闭式" "来使用强密码,bash会将" "之间的任何字符视为字符串。

ssh -i /home/ubuntu/test.pem ubuntu@192.168.10.32 "sudo /bin/bash /root/useradd.sh \"$USER\" \"$PASS\" "

不要忘记逃避内部引用。即添加\"