Linux 登陆服务器敲命令太多,某时候确实不便,所以就用shell写了一个

 我的blog地址: http://www.cnblogs.com/caoguo

一.说明

  • 支持秘密和密钥两种格式
  • 用户名和密码都是写文件的,明文保存

二.配置

  • 密码文件配置:

序号:IP:端口:用户:密码:说明 1:192.168.88.128:22:root:toor:虚拟机web服务器

  • 密钥文件放在keys文件夹下,密码位置写成密钥文件名,文件名必须以.pem结尾

github地址:https://github.com/ca0gu0/so

脚本下载:git clone git@github.com:ca0gu0/so.git

补充:

发现没有代码还是不好,把代码还是贴上

so.sh文件的内容

#!/bin/bashdirec=`dirname $0`
function color(){blue="\033[0;36m"red="\033[0;31m"green="\033[0;32m"close="\033[m"case $1 inblue)echo -e "$blue $2 $close";;red)echo -e "$red $2 $close";;green)echo -e "$green $2 $close";;*)echo "Input color error!!";;esac
}function copyright(){echo "#####################"color blue "   SSH Login Platform   "echo "#####################"echo
}function underline(){echo "-----------------------------------------"
}function main(){while [ True ];doecho "序号 |       主机      | 说明"underlineawk 'BEGIN {FS=":"} {printf("\033[0;31m% 3s \033[m | %15s | %s\n",$1,$2,$6)}' $direc/password.lstunderlineread -p '[*] 选择主机: ' numberpw="$direc/password.lst"ipaddr=$(awk -v num=$number 'BEGIN {FS=":"} {if($1 == num) {print $2}}' $pw)port=$(awk -v num=$number 'BEGIN {FS=":"} {if($1 == num) {print $3}}' $pw)username=$(awk -v num=$number 'BEGIN {FS=":"} {if($1 == num) {print $4}}' $pw)passwd=$(awk -v num=$number 'BEGIN {FS=":"} {if($1 == num) {print $5}}' $pw)case $number in[0-9]|[0-9][0-9]|[0-9][0-9][0-9])echo $passwd | grep -q ".pem$"RETURN=$?if [[ $RETURN == 0 ]];thenssh -i $direc/keys/$passwd $username@$ipaddr -p $portecho "ssh -i $direc/$passwd $username@$ipaddr -p $port"elseexpect -f $direc/ssh_login.exp $ipaddr $username $passwd $portfi;;"q"|"quit")exit;;*)echo "Input error!!";;esac
done
}copyright
main

ssh_login.exp 这个一个expect脚本,用户写交互的工具

#!/usr/bin/expect -f
set TARGET [lindex $argv 0]
set USER [lindex $argv 1]
set PASSWD [lindex $argv 2]
set PORT [lindex $argv 3]
set timeout 10spawn ssh $USER@$TARGET -p $PORT
expect {"*yes/no" {send "yes\r"; exp_continue}"*password:" {send "$PASSWD\r"}
}
interact

password.lst密码文件格式

1:192.168.88.128:22:root:toor:虚拟机web服务器
2:192.168.88.130:22:ca0gu0:toor:虚拟机mysql数据库服务器
103:192.168.88.4:22:root:sellercube:本地开发服务器

转载于:https://www.cnblogs.com/caoguo/p/4865413.html

Linux Shell ssh登录脚本相关推荐

  1. linux sh脚本 while,Linux shell脚本使用while循环执行ssh的注意事项

    原标题:Linux shell脚本使用while循环执行ssh的注意事项 如果要使用ssh批量登录到其它系统上操作时,我们会采用循环的方式去处理,那么这里存在一个巨大坑,你必须要小心了. 一.场景还原 ...

  2. 如何设置 Linux 上 SSH 登录的 Email 提醒

    如何设置 Linux 上 SSH 登录的 Email 提醒 虚拟私有服务器 (VPS)上启用 SSH 服务使得该服务器暴露到互联网中,为黑客攻击提供了机会,尤其是当 VPS 还允许root 直接访问时 ...

  3. 执行远程linux命令,linux shell 远程执行命令

    经常要部署多台服务器上面的应用,如果一个个机器的登录太麻烦. 所有就想到编写一个脚本来部署不同的服务器 前提条件: 配置ssh免登陆 如果不会的请参加我的另外一篇文章 http://blog.csdn ...

  4. Linux shell脚本基础学习

    Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提. 1. Li ...

  5. Windows轻松实现linux shell环境:gitforwindows

    Windows缺少shell命令支持 用过Linux服务器分析数据的小伙伴,一定对Linux强大Shell命令所折服,经常会感觉windows缺少这些命令而感觉不方便. 还有想学习Linux Shel ...

  6. Windows不用虚拟机或双系统,轻松实现linux shell环境:gitforwindows

    windows缺少shell命令支持 用过Linux服务器分析数据的小伙伴,一定对Linux强大Shell命令所折服,经常会感觉windows缺少这些命令而感觉不方便. 还有想学习Linux Shel ...

  7. Linux下SSH命令使用方法详解

    1.查看SSH客户端版本 有的时候需要确认一下SSH客户端及其相应的版本号.使用ssh -V命令可以得到版本号.需要注意的是,Linux一般自带的是OpenSSH: 下面的例子即表明该系统正在使用Op ...

  8. Linux之SSH性能调优,防止连接等待时间过长,连接速度飞起

    SSH服务: 干货:我的虚拟机情况,改完之后 连接速度飞起 修改相应配置: vim /etc/ssh/sshd_conf UseDNS no GSSAPIAuthentication no 保存退出 ...

  9. 8则实用的Linux Shell命令

    8则实用的Linux Shell命令 1 为 man 手册创建 pdf 版本 man -t manpage | ps2pdf - filename.pdf 比如制作 ls 命令的 man 手册 pdf ...

最新文章

  1. 对象***已断开连接或不在该服务器上 的解决方案之一
  2. 《Java程序员,上班那点事儿》书名的由来
  3. 分布式系统的事务处理
  4. ifm virtual check part3
  5. 【Swift学习笔记00】——enumeration枚举类型遵循协议protocol
  6. python实现程序重启_python实现自动重启本程序的方法
  7. 2017.8.8 魔兽地图DotR 思考记录
  8. 蓝桥杯2020国赛太原理工学子成绩大跃进
  9. 移动端向上滑动整个屏幕
  10. java项目高新_java高新技术
  11. mac mysql docker_docker学习(5) 在mac中创建mysql docker容器
  12. 【MicroPython ESP32】超低功耗协处理器(ULP):睡眠模式示例详解
  13. MYSQL默认隔离级别详解
  14. 二十一世纪大学英语读写教程(第二册)学习笔记(原文)——1 - Winston Churchill—His Other Life(丘吉尔与绘画)
  15. 西电软工oop面向对象程序设计实验四上机报告
  16. Hadoop 之Mong DB 之CentOS 6 使用 yum 安装MongoDB及服务器端配置
  17. Android学习笔记-传感器开发之利用传感器和Tween开发简易指南针
  18. 手机红外遥控器 求源码
  19. 新版MinGW-w64(12.2.0)安装
  20. 【windows】查看文件md5码

热门文章

  1. c语言产生一m序列,其特征多相式:1+x^3+x^5,M序列伪随机码在测距回答概率控制中的 - FPGA/ASIC技术 - 电子发烧友网...
  2. php mms,PHP代码示例_PHP账号余额查询接口 | 微米-中国领先的短信彩信接口平台服务商...
  3. html5面板制作代码,HTML5绘制设备面板
  4. 怎么看b树是几阶_看我在B站上怎么学习的
  5. matlab在测量数据处理中的应用,MATLAB在测量数据处理中的应用
  6. android clean 框架,clean架构
  7. 管道通信C语言,Go语言通道(chan)——goroutine之间通信的管道
  8. 整数中内存中的保存方式:大端、小端
  9. (曲率系列2:)Paper6:Curvature Estimation of 3D Point Cloud Surfaces Through the Fitting of Normal
  10. 基于Charlieplexing算法(查理复用算法)的LED矩阵控制设计