资讯专栏INFORMATION COLUMN

Linux expect指令实现ssh自动登录脚本

Astrian / 951人阅读

摘要:写在前面目前在公司是一人一台虚拟机,大多数工作都要在虚拟机上完成,为此每天要执行很多次指令登录虚拟机有很多方式解决这个问题,如使用等工具记录常用的连接,我就写了一个简单的脚本实现一键登录脚本内容如下密码再将配置别名,或移动到可执行目录中,即

写在前面:目前在公司是一人一台虚拟机,大多数工作都要在虚拟机上完成,为此每天要执行很多次【ssh xxx@xxxxxx】指令登录虚拟机;有很多方式解决这个问题,如使用xshell、secureCRT等工具记录常用的连接,我就写了一个简单的脚本实现一键登录~

login.sh脚本内容如下:

#!/usr/bin/expect
spawn ssh xxx@xxxxxx
expect "*password:"
send  "密码
"
interact

再将【./login.sh】配置别名alias,或移动到可执行目录中,即可实现【login】一键登录;

expect是一个处理交互的指令,通过expect我们可以把交互过程写到Shell脚本里以实现一些自动化操作~

expect有四个核心的指令:

spawn:启动新进程,后跟新进程要执行的指令;

expect:指定要监听的字符串,如果spawn进程返回了匹配的字符串(如标准输入的提示信息),则触发send;

send:发送指定的字符串到spawn进程,代替标准输入;

interact:用户参与交互;

对于login.sh的执行过程为:
【spawn】启动一个新进程执行ssh登录指令,【expect】监听到标准输入的提示信息『xxx@xxxxxx’s password』符合匹配规则,触发【send】发送密码代替手动输入,完成登录,【interact】用户参与交互,此时已登录上了虚拟机;

使用expect还可以完成如:批量更新git代码库、自动登录FTP服务器等功能~FYI~

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/10534.html

相关文章

  • iTerm2 结合 Linux expect 实现 ssh 自动登陆, 通过跳板机登录服务器内网功能

    摘要:解决方法脚本通过跳板机登录内网服务器,如果只登陆有外网的服务器,把有关内网的部分删掉就可以啦,例如跳板机就是有外网的服务器。执行完成后保持交互状态,把控制权交给控制台。 痛点 一般情况下,公司所有的服务器都在内网,公网访问、管理服务器都要先通过登录一台跳板机,然后再由跳板机登录到相应的服务器进行操作,跳板机与服务器的连接都是内网地址。我们经常看到的现象就是下图这样(博主 Mac 自带的...

    williamwen1986 评论0 收藏0
  • linux ssh 登录脚本

    摘要:最近公司的积分商城被人刷票。每次登录都要输入密码。所以写了一个自动化登录的脚本。如果没有这一句登录完成后会退出,而不是留在远程终端上参考 最近公司的积分商城被人刷票。所以要查nginx日志,而这个业务就有8台服务器。每次登录都要输入密码。那个蛋疼。所以写了一个自动化登录的shell脚本。省去了很多麻烦。这个只是一个小功能,如果想做的更加智能化,可以在这个基础上优化 #!/usr/bi...

    neu 评论0 收藏0
  • linux ssh 登录脚本

    摘要:最近公司的积分商城被人刷票。每次登录都要输入密码。所以写了一个自动化登录的脚本。如果没有这一句登录完成后会退出,而不是留在远程终端上参考 最近公司的积分商城被人刷票。所以要查nginx日志,而这个业务就有8台服务器。每次登录都要输入密码。那个蛋疼。所以写了一个自动化登录的shell脚本。省去了很多麻烦。这个只是一个小功能,如果想做的更加智能化,可以在这个基础上优化 #!/usr/bi...

    jasperyang 评论0 收藏0
  • 使用 expect 在必要情况下实现自动输入密码登陆

    摘要:原文地址补充网友穗乃果提示,用可以更完美地解决这个问题。试了一下,因为安全原因,默认不支持安装可以用以下命令安装使用方法你的密码添加命令别名在中添加一行你的密码使之生效完美解决了使用带来的副作用,感谢穗乃果 由于公司的堡垒机必须要用域账号登陆,然后转发密钥,所以每次登陆堡垒机的时候都需要手动输入域账号密码。密码太长且复杂,手动输入容易输错,故使用 expect 写了个脚本来做这个事情,...

    Barry_Ng 评论0 收藏0
  • Linux 命令--expect自动化交互程序

    摘要:是的自动化交互程序从其他的交互式程序期望输出同时对所期望的输出做出相应。下面通过一段代码来说明常用的命令。现在我们想通过命令远程登录一台机器同时在远程主机上执行命令。 expect是Linux的自动化交互程序;expect从其他的交互式程序期望(expect)输出,同时对所期望的输出做出相应。 下面通过一段代码来说明expect常用的命令。现在我们想通过ssh命令远程登录一台机器, 同...

    wangxinarhat 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<