首页 > Linux Shell ssh登录脚本

Linux Shell ssh登录脚本

  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 [email protected]:ca0gu0/so.git

 

补充:

 

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

so.sh文件的内容

#!/bin/bashdirec=`dirname $0`
function color(){blue="33[0;36m"red="33[0;31m"green="33[0;32m"close="33[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("33[0;31m% 3s 33[m | %15s | %s
",$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
"; exp_continue}"*password:" {send "$PASSWD
"}
}
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

更多相关:

  • 毕业之际给学校搭建了基于ATS的正向代理缓存服务器,专门用来处理优酷土豆等在线视频流量。通过改写一个浏览器做成在线视频专用浏览器,内置了ATS的代理设置。 用php配合memcacheq和小脚本实现了简单的异步预热功能,在实际运用中安全性请自行考虑完善。 工作方式:PHP页面提交URL——>memcacheq<——shell脚...

  • 好久不写shell脚本,有些生疏。总结下shell的语法,以便后续参考,快速捡起来。 shell 脚本执行的3种方式: 1). ./xx.sh (xx.sh 需要有执行权限) 2). source xx.sh 3). bash xx.sh 变量定义 var=2 //注意:=左右没有空格 变量引用的2种方式 $符号就是变量解引用...

  • 作者:荒原之梦 原文链接:http://zhaokaifeng.com/?p=538 前言: “Ping”属于ICMP协议(即“Internet控制报文协议”),而ICMP协议是TCP/IP协议的一个子协议,工作在网际层。ICMP协议主要用于传输网络是否连通、主机是否可达以及路由是否可用等控制信息。Ping可以回显TTL生存...

  • 前言:俗话说的好,懒是第一生产力,懒是提高生产效率的必要条件。而现今windows是大部分人的第一生产工具,批处理+定时任务这对黄金搭档就是提升生产效率的第一工具。大家在生产过程中经常会遇到各种周期性的重复的工作,比如我现在每天都会更换最新的jar包并重启tomcat,linux服务器我们可以用shell+crontab,而windo...

  • 给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小。 注意: num 的长度小于 10002 且 ≥ k。 num 不会包含任何前导零。 示例 1 : 输入: num = “1432219”, k = 3 输出: “1219” 解释: 移除掉三个数字 4, 3, 和 2形成一个新的最小的数...

  • 代码展示:   http://paste.ubuntu.com/23693598/ #include #include #include char * largeDiffer(char *a,char *b){ /*  使用说明 传入的a和b只能为整数 结果为a-b;返回...

  • Description We all know that Bin-Laden is a notorious terrorist, and he has disappeared for a long time. But recently, it is reported that he hides in Hang Zhou of Ch...

  • /*Name: NYOJ--811--变态最大值Author: shen_渊 Date: 17/04/17 15:49Description: 看到博客上这道题浏览量最高,原来的代码就看不下去了 o(╯□╰)o */#include #include #include u...

  • 生成唯一号:思路,根据yymmddhhmmss+自增长号+唯一服务器号( SystemNo)生成唯一码,总长度19,例如:1509281204550000101. public class UniqueNumber {     private static long num = 0;//流水号     private sta...

  • 滑块式验证码用户通过拖动滑块行为来完成校验,支持PC端及移动端。可以将用户拖动行为的时间、精度,滑动轨迹等信息到服务器,然后进行后台算法验证。特别介绍Blazor 版本的滑块验证码 传送门在线演示效果图快速开始组件依赖 font-awesomeCSS将引入样式表的 标签复制并粘贴到 中,并放在所有其他样式表之前。JS将引入脚本的 用...

  • Ktor 是一个使用 Kotlin 以最小的成本快速创建 Web 应用程序的框架。Ktor 是一个用于在连接系统(connected systems)中构建异步服务器和客户端的 Kotlin 框架。它由 Kotlin 团队创建,因此,它充分利用了 Kotlin 的语言特性,为开发者提供出色的体验和运行时性能。import io.kto...

  • l VDI (Virtual Desktop Infrastructure)VDI构架采用的“集中存储、集中运算”构架,所有的桌面以虚拟机的方式运行在服务器硬件的虚拟化层上,桌面以图像传输的方式发送到客户端。l IDV (Intelligent Desktop Virtualization) 由于VDI方案对服务器资源、网络带宽要求比...

  • 受昨晚闰秒问题影响,今天内网和线上的ATS服务器都出现了CPU负载增高的问题,参见下面的截图 下面是tsar监控到负载异常记录,从今天(20150701)早上8:05分开始: 我们内网和线上的服务器Linux kernel内核版本都是 经过实践摸索,发现如下规律: 1.如果已经开启ntpd,如果昨晚没有关闭n...

  • 下面的安装假定是以root用户身份进行的,Linux服务器已经安装好系统,磁盘已经做好分区。 首先需要认识我们的Linux服务器的硬件配置和软件情况 硬件配置: DELL R720 2U服务器 CPU  8核 Intel(R) Xeon(R) CPU E5-2609 0 @ 2.40GHz 内存 32G 硬盘  系统盘 /...