命令如下:
# 作用:把192.168.101.91服务器原密码:111111改成Softsec@2020CN
sshpass -p "111111" ssh -o StrictHostKeyChecking=no root@192.168.101.91 "echo 'Softsec@2020CN' |passwd --stdin root"
命令解释:
第一部分:sshpass -p "111111" ssh -o StrictHostKeyChecking=no root@192.168.101.91
是通过sshpass这个插件远程连接了服务器192.168.101.91的root用户,sshpass的原理跟expect插件类似,就是模拟了人工输入密码。
但sshpass有个问题,当终端首次连接某个服务器时,都会有个“Are you sure you want to continue connecting (yes/no)? ”的提示,这样就没法连接,但是加上“-o StrictHostKeyChecking=no”参数,即可解决这个问题。
第二部分:echo 'Softsec@2020CN' |passwd --stdin root
@这个命令意思是:修改root用户密码,且输入新密码默认填写前面的内容“Softsec@2020CN”。
这样一来就可以一条命令成功修改任何服务器密码啦,一次性使用的话就弄简单些,直接复制200条这命令,然后批量修改命令中参数放到shell脚本中运行就阔以了。
sshpass 详细参考:
《linux 非交互ssh sshpass简介》https://blog.csdn.net/whatday/article/details/103008743
《linux sshpass 非交互的ssh密码验证 简介》https://blog.csdn.net/whatday/article/details/108923248