shell脚本方式,适合单用户,无明文
#! /bin/bash
set ip [lindex $argv 1]
set username "test"
set password "12345678"
set pass2 "11223344"
set timeout -1
spawn ssh $username@$ip
expect "*word" { send "$password\n" }
expect ".*\]" { send "sudo passwd\n" }
sleep 1
expect "*est:" { send "$password\n" }
sleep 1
expect "*New password:" { send "$pass2\n" }
expect "*password:" { send "$pass2\n" }
expect "*password:" { send "$pass2\n" }
expect ".*\]" {send "exit\n" }
expect eof
ansible剧本方式,适合多用户,无明文
---
- hosts: all
tasks:
- name: change password
user: name={{ item.name }} password={{ item.chpass | password_hash('sha512') }} update_password=always
with_items:
- { name: 'root', chpass: '12345678' }