使用expect 打通到其他服务器无密码访问
由于zabbix对功能,业务监控比较方便,就用zabbix做监控,zabbix唯一的缺点就是需要在每台服务器上安装客户端,即便是几十台服务器,一台一台做着实繁琐,何况更多,时间紧急,无密码登陆通道还没打通,就准备先打通,再写脚本来安装agentd,就选择了使用except。关于expect语法与使用方法,可以私下交流。
具体脚本如下。
本脚本可以循环服务器ip,完全做到自动化,缺点:服务器密码保持一致。
#!/bin/bash cat >login.exp <<EOF #!/usr/bin/expect -fset ip [lindex \$argv 0] set password *****************set timeout 3 spawn ssh -p60022 admin@\$ip ssh-keygen -t rsa; expect {"yes/no" {send "yes\r";exp_continue} } expect "admin@\$ip's password:" set timeout 2 send "\$password\r" set timeout 2 expect "(/home/admin/.ssh/id_rsa):" send "\r" expect {"y/n" {send "y\r";exp_continue} } expect "(empty for no passphrase):" send "\r" expect "Enter same passphrase again:" send "\r" set timeout 10 send "exit\r" expect eofset timeout 3 spawn ssh -p60022 admin@\$ip cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys ; expect {"yes/no" {send "yes\r";exp_continue} } expect "admin@\$ip's password:" set timeout 3 send "\$password\r" set timeout 10 send "exit\r" expect eofset timeout 3 spawn scp -P60022 ~/.ssh/authorized_keys admin@\$ip:~/.ssh/authorized_keys; expect {"yes/no" {send "yes\r";exp_continue} } expect "admin@\$ip's password:" set timeout 3 send "\$password\r" set timeout 10 send "exit\r" expect eof EOFfor i in `cat iplist` doexpect login.exp $i done 说明,iplist 里面写入服务器ip地址即可[root@zabbix admin]# cat iplist 172.16.8.34 172.16.8.35
另一个工具 sshpass 也可以实现无密码访问。
需要编译安装,×××地址 http://sourceforge.net/projects/sshpass/
解压编译安装即可
使用:#从命令行方式传递密码
sshpass -p password ssh root@ip -p后面直接指定密码
#从文本传递密码
sshpass -f file ssh root@ip 把密钥写到file里即可。
#从环境变量传递
export SSHPASS="user_password"
sshpass -e ssh user_name@192.168..1.2
转载于:https://blog.51cto.com/zhangxylinux/1422735
使用expect 打通到其他服务器无密码访问相关推荐
- 多台linux服务器ssh相互无密码访问
转载:http://blog.csdn.net/educast/article/details/7174498 一.单向无密码访问 单向无密码访问远程服务器操作比较简单,比如服务器A需要无密码访问服务 ...
- rsh服务配置主机无密码访问
rsh的安全性是没有保证的,所有密码均使用明文传输,如果服务器有大量对外服务,建议不要使用此协议 我们在使用CentOS系统时候,安装RAC时,需要配置各个节点的互信关系,使rsh.rlogin.rc ...
- Ubuntu下安装rsh实现无密码访问
一:环境 1.三台服务器ubuntu14.04, 主机名分别为compute,block1和blcok2 2.两台主机hosts文件都为: root@compute:~# cat /etc/hosts ...
- 多台linux无密码访问之方法二
一:实验环境同"多台linux无密码访问之方法一" 二:配置过程 前3步同"多台linux无密码访问之方法一" ★第四步不同于方法一 4.在.ssh目录下创建一 ...
- Win2003和Win2008防火墙导致FTP服务器不能访问的解决方法
这篇文章主要介绍了Win2003和Win2008防火墙导致FTP服务器不能访问的解决方法,需要的朋友可以参考下 由于通过远程访问传文件比较麻烦,就安装了IIS自带的FTP功能,设置好了之后,服务器上可 ...
- 前端服务器OWA 访问显示异常最佳解决方案
EXCHANGE2003环境: 前端服务器:denver 后端服务器:sbs1 出现的问题: 当从一台XP客户端通过OWA进行访问时,如直接通过后端[url]http://sbs1/excha ...
- 侏罗纪显示服务器超时,侏罗纪世界进化服务器无法访问解决方案推荐
部分玩家在登录这款游戏时,会出现.服务器无法访问,连接到互联网并选择"重试"的情况.那么遇到这种情况,我们要怎么解决呢?本文小编会为大家详细介绍,一起来看看吧! 问题描述: 在登录 ...
- 服务器应用程序不可用您试图在此 Web 服务器上访问的 Web 应用程序当前不可用。请点击 Web 浏览器中的“刷...
错误提示: 服务器应用程序不可用您试图在此 Web 服务器上访问的 Web 应用程序当前不可用.请点击 Web 浏览器中的"刷新"按钮重试您的请求. 管理员注意事项:详述此特定请求 ...
- linux各机器之间配置无密码访问
2019独角兽企业重金招聘Python工程师标准>>> 1.在机器上生成证书公私钥,分别执行如下命令: ssh-keygen -t dsa -P '' -f ~/.ssh/id_ds ...
最新文章
- 尤雨溪创立 Vue.js 的心路历程纪录片
- 小米AIoT开发者大会28日召开,雷军的AIoT和小米的这一年
- 分模块开发创建父工程——(六)
- mysql 设置电脑时间设置_怎样设置mysql密码
- ActiveX技术在WEB页上的应用[转载]
- 大数据WEB阶段(十九)Threadlocal
- dockerclient 查看端口占用_docker 端口被占用问题解决
- html表格在页面间距,在CSS中设置单元格和单元格间距?
- Android App优化之ANR详解
- 7-60 二分查找法之过程 (10 分)
- git 更换密码后,pull代码 fatal: Authentication failed for '
- Java经典设计模式 总览
- c mysql对时间加减_25.2.10. 日期和时间值的C API处理
- ArcGis如何插入图片_如何在CAD图纸中以OLE形式插入图片?
- 如何查看局域网内所有IP
- svchost是什么程序
- 2019开发者调查报告出炉
- ROS 教程1 机器人操作系统 基础知识 节点 话题 消息 服务 行动 参数 日志 TF变换 目标结构 启动文件
- 什么是图片的DPI?如何修改图片DPI值?
- 那些在做固态盘SSD的其实在研究这仨东西
热门文章
- DHCP网络服务器的实现
- Java语言的关键字
- django_2.0_请求处理
- Android 7.0 出现 ”FileUriExposedException“ 和 ”解析包出现错误“ 异常的解决办法...
- SQL Server 审核(Audit)-- 审核组件
- Office365从销售说起——企业办公考虑重点
- foo、bar、baz三兄弟
- 高中数学与计算机程序
- (How to)WordPress与Windows Live Writer整合
- PostgreSQL学习手册(七) 事物隔离