免密登录的shell脚本

来源:互联网 发布:windows 程序返回值 编辑:程序博客网 时间:2024/05/22 12:02
这里#!/bin/bash# 功能      : 使用except无需输入密码自动登录ssh# Author   : Jiangxianli# Date     : 2016/01/14#服务器配置项CONFIGS=(    "服务器名称 22 220.181.57.217 root baidu.com"    "新浪服务器 22 66.102.251.33 root sina.com")#服务器配置数CONFIG_LENGTH=${#CONFIGS[*]}  #配置站点个数#登录菜单function LoginMenu(){    echo "-------请输入登录的服务器序号---------"    for ((i=0;i<${CONFIG_LENGTH};i++));      do          CONFIG=(${CONFIGS[$i]}) #将一维sites字符串赋值到数组          serverNum=$(($i+1))         echo "---(${serverNum})--${CONFIG[0]}(${CONFIG[2]})---"    done      echo "请输入您选择登录的服务器序号: "}#选择登录的服务器function ChooseServer(){    read serverNum    if [[ $serverNum -gt $CONFIG_LENGTH ]] ;    then        echo "输入的序号不正确,请重新输入:"        ChooseServer ;        return ;    fi    if [[ $serverNum -lt 1 ]] ;    then        echo "输入的序号不正确,请重新输入:"        ChooseServer ;        return ;    fi    AutoLogin $serverNum;}  #自动登录function AutoLogin(){    num=$(($1-1))     CONFIG=(${CONFIGS[$num]})      echo "正在登录【${CONFIG[0]}】"    expect -c "        spawn ssh -p ${CONFIG[1]} ${CONFIG[3]}@${CONFIG[2]}        expect {            \"*assword\" {set timeout 6000; send \"${CONFIG[4]}\n\";}            \"yes/no\" {send \"yes\n\"; exp_continue;}            \"Last*\" {  send_user \"成功登录【${CONFIG[0]}】\";}        }   interact"   echo "您已退出【${CONFIG[0]}】"}LoginMenu ;ChooseServer ;
0 0
原创粉丝点击