Linux 简化ssh登录的脚本

问题

通常,开发或者运维要面对很多的服务器,每次用ssh登录就要输入用户名和密码,除非使用无密码登录,否则谁能记得住那么多、那么长的密码呢,有没有更简单的方法呢?

方法

这个方法就是使用 expect。

1. 安装 expect
sudo apt-get install expect
2. 脚本

新建脚本
vi goto

#!/usr/bin/expect -f       //调用expect
set timeout 10
set hostname [lindex $argv 0]  //hostname这些为了简便都可以写死
set hostip [lindex $argv 1]
set passwd [lindex $argv 2]
spawn ssh $hostname@$hostip
#spawn ssh xlf@10.58.61.2   //写死的
expect "*assword:"           //expect 是期望的返回信息匹配
send "$passwd\r"     //send 的内容是我们的应答  \r 是回车 一定要有
#send "123456yhn\r"     //写死的
expect "*yes/no)"    //第一次连接通常都会有的提示
send "yes\r" 
interact 

写完保存
chmod +x goto

3.运行

./goto
运行可能出错,可以根据具体情况修改脚本,比如有的服务器需要通过堡垒机访问,也有的验证过程和上面的脚本的验证顺序不一样,需要结合实际情况摸索着改,直到没有错误为止,其实很好改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值