在shell脚本编程中,经常会有远程执行命令的需求,而要做到这一点,一种方法是使用ssh建立起主机间的信任关系,而另一种方法是使用交互式的语言自动输入密码,下面就使用expect脚本实现ssh自动登录的功能。
#!/usr/bin/expect -f
# 设置变量
set password [lindex $argv 0]
set ipaddr [lrange $argv 1]
set timeout 1
# 开启另外一个进程运行ssh登录脚本
spawn ssh root@$ipaddr
# 等待输入密码的提示符
expect "*?assword:*"
# 使用send命令发送密码
send "$password\r"
# 等待超时
expect timeout
--EOF--
分享到:
相关推荐
在ssshHost.sh脚本中封装expect的ssh登录自动填充密码功能
本篇文章给大家介绍在Linux中使用expect脚本实现远程机器自动登录,前提是要创建一个expec脚本ssh_expect,接下来定义一些命令别名等,下面跟着脚本之家小编一起学习学习吧
shell+expect编写的 大数据集群ssh免密登录自动化配置脚本(带说明文档)
文件名:ssh_auto_login 代码如下:#!/usr/bin/expect### ssh模拟登陆器## @author zhiyuan <hzyhouzhiyuan>##if {$argc<4} { puts “Error params: $argv” puts “Expect params :user passwd ip port ...
运行脚本后,批量扫描主机自动执行ssh-copy-id,自动输入密码。完成批量主机ssh无口令配置
ssh自动连接脚本,使用了expect自动化交互以及mail邮件提醒功能。本人亲自实践,希望有助于大家。
shell与expect脚本,实现循环登录服务器并在服务器终端执行指令操作。
主要介绍了Shell脚本实现自动输入密码登录服务器,本文使用expect来实现这个需求,讲解了expect的安装及使用脚本,需要的朋友可以参考下
所以,这时候只要知道对方机器的账号和密码就可以通过expect脚本实现登录和远程命令。 引言 目前在公司是一人一台虚拟机,大多数工作都要在虚拟机上完成,为此每天要执行很多次【ssh xxx@xxxxxx】指令登录虚拟机;有...
1.从ip.txt文件中取出ip列表。2.将每一个ip设置到防火墙黑名单。3.使用expect自动登录防火墙。4.进入到防火墙系统视图。5.将IP加入到防火墙。6.查看IP黑名单列表。完整代码见附件
本脚本采取嵌入式编写,使用expect+shell,自动检测安装expect模块 #使用方法:./script.sh filename # ip列表中第一列为IP,第二列为IP对应的用户密码。列与列之间空格隔开 一个脚本搞定全部SSH免密码登录多台服务器
1. # 6. } 1. yum install expect 1. yum --nogpgcheck install expect 2.运行./ssh_dis
CentOS利用expect批量推送ssh public key的脚本
最近项目需要实现单边无密登录,去网上搜索了下相关文章,实践之后发现几乎都不能用。于是结合expect的使用方法自行写了一个,通过验证可用。现在总结在这供需要的朋友参考。 代码如下: EXPECT=/usr/bin/expect ...
批量实现自动发送公钥到远程主机 环境 firewalld:关闭 selinux:关闭 实现方式 sshpass命令 shell调用expect命令 sshpass命令 #!/bin/bash # #***********************************************************...
expect+python组合实现一键SSH
公司服务器比较多,而且根据随机登录查看的结果,sshd_config内容居然还太不一样~~手工干了一天,改了两组服务器后,终于下定决心要整个全自动脚本出来干活…… 目前的办法是这样的: cat ssh.exp 代码如下:#!/usr...
/usr/bin/expect -fset ipaddress [lindex $argv 0]set passwd [lindex $argv 1]set timeout 30spawn ssh root@$ipaddress#expect “yes/no”#send “yesr”expect “password:”send “$passwdr”expect “]*”send...