shell脚本实现通过ssh跳板机(动态密码)一键登陆服务器(相关问题与解决方案)

在我日常工作中,登陆服务器一般分为两个个步骤,通过ssh命令登陆跳板机,然后再通过跳板机登陆服务器。登陆跳板机又分为三个步骤,输入一长串用户名,再通过手机令牌查看动态密码,输入密码+动态码。这样每次登陆服务器都需要这么繁琐的步骤,在需要解决一个问题的时候,在登录上花的时间已经好几分钟,在同时登录多个服务器时更是让人头皮发麻,所以想写一个脚本,简化操作流程实现一键登录。

下面是第一个思路,通过bash脚本嵌套expect的方法,实现与命令行自动化交互,实现登录服务器,该办法在试验后发现有问题,造成该方法不能实施。后面会介绍具体问题

#!/bin/bash

salt="你的跳板机动态密码" 
username="your username" 
password="your password"
server="服务器名"
serverpass="服务器密码"
/usr/bin/expect <<-EOF

spawn ssh "$username"
expect {
    "*yes/no*" {
        send "yes\n";
        exp_continue;
    }
    "*Password:" {
        send "$password$salt\n";
        exp_continue;
    }
    "*adadadw*" {
        send "ssh $server\r";
        exp_continue;
    }
    "*password:" {
        send "$serverpass\r"
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值