ssh 直接免密输入 sudo 密码

#推荐方案: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
相关推荐
OPEN-F40 分钟前
Ubuntu 自动登录后 GNOME 远程桌面连不上?一次登录钥匙环锁定的排查与永久修复
linux·运维·ubuntu
硅基手札1 小时前
【Linux 内核专栏 19】20 · 嵌入式子系统 — GPIO·pinctrl·clock·regulator
linux·运维·单片机·linux内核·嵌入式开发·调试定位
修心光1 小时前
记录一次,jenkins打包异常问题
运维·jenkins
分布式存储与RustFS1 小时前
JuiceFS 接 RustFS 当数据后端:把对象存储挂成本地文件系统
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
CANI_PLUS2 小时前
电脑文件共享
运维·服务器
Decay__3 小时前
15_MySQL 数据同步与迁移方案 —— 复制 / DataX / Canal / 异构同步(对标 Oracle GoldenGate)
运维·数据库·sql·mysql·架构
Linux界最忧郁之人3 小时前
华为云ECS&IMS&AS实战|弹性云服务器、私有镜像、弹性伸缩完整实验
linux·运维·服务器·centos·华为云·openstack
后台模板学习3 小时前
GitHub Actions 与 Jenkins 在日志监
运维·github·jenkins
whyutianict_vv3 小时前
零基础转 AI 运维:投入清单、技术路线与核对表
linux·运维·人工智能·ai