脚本自动登陆shell脚本(简洁版)

背景:工作中各种线上机器的登陆脚本,有的还要需要先登录跳板机再登陆线上机器,有的还有动态口令,每次输入起来都很麻烦,使用自动化登陆脚本来管理太方便不过啦~
原理:shell调用expect来远程登陆
login.sh

#!/usr/bin/env bash

relay_name="$relay_name"
relay_password="$relay_password"
relay_host="xxx"

token=$1

echo "输入对应编号回车!"
select server in "server01" "server02" "server03"
do
break
done

expect -c "

set timeout -1
puts $server
spawn ssh $relay_name@$relay_host
set timeout 1
expect -re \"*Password*\" {send \"$password\r\"}
send \"ssh $server\r\"

interact
"

将脚本设置可执行,并添加到环境,以后就可直接调用了~

ps:设置一下长连接,每天只需登陆一次
在 ~/.ssh/config 中加入以下内容,如果没有这个文件就touch一个,权限需要600才可以生效

Host *
    ControlPersist yes
    ControlMaster auto
    ControlPath ~/.ssh/master-%r@%h:%p
    Compression yes

你可能感兴趣的:(linux)