且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

通过ssh更改Linux服务器上密码的脚本

更新时间:2023-12-05 14:21:40

不需要安装远程计算机.您可以在本地工作站或VM(虚拟盒)或任何* nix盒上安装Expect,并编写一个调用此.ex(期望)脚本的包装器(发行版之间的细微变化,已在CentOS 5/6上进行了测试) ):

The remote machine(s) do not need expect installed. You can install expect on a local workstation or VM (virtualbox) or whichever *nix box, and write a wrapper that calls this .ex (expect) script (there may be small changes from distro to distro, this tested on CentOS 5/6):

#!/usr/bin/expect -f
# wrapper to make passwd(1) be non-interactive
# username is passed as 1st arg, passwd as 2nd

set username [lindex $argv 0]
set password [lindex $argv 1]
set serverid [lindex $argv 2]
set newpassword [lindex $argv 3]

spawn ssh $serverid passwd
expect "assword:"
send "$password\r"
expect "UNIX password:"
send "$password\r"
expect "password:"
send "$newpassword\r"
expect "password:"
send "$newpassword\r"
expect eof