Shell脚本自动输入密码

Shell脚本自动输入密码

方式一 使用 echo “密码” | (管道符)

使用场景: sudo 命令

在使用普通用户执行 root 命令时有时候会需要输入密码,并且在输入密码后一段时间不需要再次输入(但是不影响),这时候可以使用

echo "密码" | sudo 命令

demo

(base) xj@xjpc:~/tmp$ mkdir /home/tmp.txt
mkdir: cannot create directory ‘/home/tmp.txt’: Permission denied
(base) xj@xjpc:~/tmp$ echo 'king' | sudo mkdir /home/tmp.txt

方式二 expect

echo + 管道符不是什么时候都可以生效(比如我写的自动提交博客脚本最后需要输入我的服务器的 git 仓库密码就不生效,ssh也不生效),因此我们可以使用 expect 方法来执行。

图片image-20230817112646582

demo

#!/usr/bin/expect

set timeout 30
spawn ssh -l xj 172.16.101.222
expect "password:"
send "king\r"
interact

这里的语句是这样的:

设置超时时间为30s spawn 是 expect 的起始语句,可以理解为从此处开始 spawn 后面的语句是执行 ssh 连接 expect:当发现password:这个字符串后,在后方输入send后面的内容 send:要输入的密码 interact:执行完留在远程控制台,不加这句执行完后返回本地控制台

这个只能放在一人shell脚本文件中,执行之后,控制台就是远程服务的控制台了。

我有个大胆的想法

小伙伴在平常有没有遇到以下这种情况:遇到技术难题时,网上教程一堆堆,优秀的很多,但也有很多是过时的,或者是copy来copy去,甚至错别字都没改。

我公众号的技术文章,都是亲自校验过的。至少可以保证在发文的一段时间,不会过时。如果你在实操过程中,有遇到问题,可以在同名公众号留言,免费解答,相互学习,相互成长^v^

往期精彩

收藏那么多python资料干嘛,这一本就够你从入门到入土了!

SaaS 多租户系统数据隔离方案

爬虫能有多难啊?看完这篇,你还不上手?

如何每天自动发送微信消息给女朋友说晚安

又给家人们送福利了-清华出版的python

 

收录于合集 #实操
 18
上一篇MySQL如何定位慢查询的原因下一篇一篇教你Git从入门到精通
 
阅读 1478
生活处处有BUG
 
 
 
 
posted @ 2023-09-14 18:23  技术颜良  阅读(353)  评论(0编辑  收藏  举报