#推荐方案:macOS Keychain
保存sudo密码
#先保存一次:
security add-generic-password \
-a "$USER" \
-s "sudo-password" \
-w
#它会提示你输入密码,密码存进 macOS Keychain。
security add-generic-password \
-a "$USER" \
-s "你的 sudo 密码" \
-w
#如果你想修改密码
security delete-generic-password \
-a "$USER" \
-s "sudo-password"
更推荐:直接更新,不删除
security add-generic-password \
-U \
-a "$USER" \
-s "sudo-password" \
-w
#-U 表示如果已经存在就更新。
脚本
#!/usr/bin/expect -f
set timeout -1
if {$argc != 1} {
puts "Usage: $argv0 <host>"
exit 1
}
set host [lindex $argv 0]
set password [exec security find-generic-password \
-a [username] \ # 用真实用户名替换掉 [username]
-s "sudo-password" \
-w]
spawn ssh -t $host "sudo -iu root"
expect {
-re "(?i).*password.*:" {
send "$password\r"
}
}
interact