使用shell脚本自定义实现选择登录ssh
在系统bin目录中建立两个脚本分别是pssh tssh
pssh
#!/usr/bin/expect -f
set ip [lindex $argv ]
set port [lindex $argv ]
set password [lindex $argv ]
set uname [lindex $argv 3 ]
set timeout
spawn ssh root@$ip -p$port
expect {
"*yes/no" { send "yes\r"; exp_continue}
"*password:" { send "$password\rclear\r\r\r请小心使用,您现在登录的服务器IP是:$ip,服务器名称是:$uname" }
}
interact
tssh
#!/bin/sh
echo "以下是你的所有服务器列表"
echo "1.A服务器 192.168.100.11"
echo "2.B服务器 192.168.100.12"
echo "3.C服务器 192.168.100.13"
echo "回车键退出"
echo "请输入对应数字,选择你要登录的服务器:\c"
read input
test $input = case $input in
)pssh 192.168.100.11 123456 A服务器;;
)pssh 192.168.100.12 admin B服务器;;
)pssh 192.168.100.13 root C服务器;;
esac
记得将给脚本加上可执行权限
然后在终端上执行tssh出现如下结果
以下是你的所有服务器列表
1.A服务器 192.168.100.11
2.B服务器 192.168.100.12
3.C服务器 192.168.100.13
回车键退出
请输入对应数字,选择你要登录的服务器:1
spawn ssh root@192.168.100.11 -p22
CentOS release 6.8 (Final)
Kernel \r on an \m
root@192.168.100.11's password:
Last login: Thu Aug 18 18:34:58 2016 from 192.168.100.2
Welcome to aliyun Elastic Compute Service!
[root@Official ~]#
使用shell脚本自定义实现选择登录ssh的更多相关文章
- 关于nagios系统下使用shell脚本自定义监控插件的编写以及没有实时监控图的问题
关于nagios系统下shell自定义监控插件的编写.脚本规范以及没有实时监控图的问题的解决办法 在自已编写监控插件之前我们首先需要对nagios监控原理有一定的了解 Nagios的功能是监控服务和主 ...
- 利用shell脚本做一个用户登录系统
效果图如下: #!/bin/bash# while truedocat << EOF//======================\\\\| 用户登录系统 |-------------- ...
- 防止shell脚本长时间执行导致ssh超时
在一些对安全性要求较高的场景下.ssh的超时时间是管理员预先设置好的,在闲置一段时间后ssh连接会自己主动断开. 这样的情况下假设通过ssh运行脚本,而脚本运行时间又比較长的话.会导致sshclien ...
- 关于nagios系统下使用shell脚本自定义监控插件的编写
在自已编写监控插件之前我们首先需要对nagios监控原理有一定的了解 Nagios的功能是监控服务和主机,但是他自身并不包括这部分功能,所有的监控.检测功能都是通过各种插件来完成的. 启动Nagios ...
- shell脚本实现无密码交互的SSH自动登陆
ssh连接远程主机时候询问密码,跟su.sudo命令的默认行为一样,是不从stdin读入数据的,据称是为安全考虑,但是有时候在脚本当中确实需要无人守值的登陆. 搜索一下不难找到类似的例子,使用expe ...
- Shell脚本字符串匹配及日常命令工具 - 用法总结(技巧指南)
Shell提供了很多字符串和文件处理的命令,如awk.expr.grep.sed等命令,还有文件的排序.合并和分割等一系列的操作命令.下面重点总结下Shell字符串处理.文本处理以及各类命令及函数用法 ...
- 常用的shell脚本(安全方向)
更多shell脚本参考:https://blog.51cto.com/zero01/2046242 1.拒绝密码撞库攻击的ip shell脚本:实现对登录主机失败10次以上的ip进行拒绝登录 #! / ...
- shell脚本中case的用法
shell脚本中case选择语句可以结合read指令实现比较好的交互应答操作,case接收到read指令传入的一个或多个参数,然后case根据参数做选择操作. case的语法如下 case $char ...
- shell脚本0——”一切皆文件“, 认识Shell
一.”一切皆文件“与“管道” 1)管道:grep foo /path/to/file | grep -n -k 3 | more 实际过程与我们直观认为的相反,最好通过实际过程理解.首先运行的是mor ...
随机推荐
- 基础dp
队友的建议,让我去学一学kuangbin的基础dp,在这里小小的整理总结一下吧. 首先我感觉自己还远远不够称为一个dp选手,一是这些题目还远不够,二是定义状态的经验不足.不过这些题目让我在一定程度上加 ...
- ListView上下线添加
<com.jclick.swipelistview.byzswipemenulistview.InScrollviewSwipeMenuListView android:id="@+i ...
- CodeForces 703A Mishka and Game
简单题. #pragma comment(linker, "/STACK:1024000000,1024000000") #include<cstdio> #inclu ...
- mongodb部署单节点(一)
部署包:mongodb-linux-x86_64-rhel55-3.0.2.tgz(百度云盘下载地址:http://pan.baidu.com/s/1jIQAGlw 密码:l7pf) 第一步:上传该文 ...
- iOS开发The Operation couldn't be completed.(LaunchServicesError error 0.)的解决方法
显示错误:The Operation couldn't be completed.(LaunchServicesError error 0.)解决办法:第1种方法.点击当前的模拟器,点击IOS Sim ...
- mysql解决中文乱码问题
安装文件 my.ini default-character-set=gbk 安装文件 db.opt default-character-set=gbkdefault-collation=gbk_chi ...
- 自定义MVC框架(一)-(没有基于xml的)
0.创建oracle的sql语句如下 --创建表 create table userinfo(id number primary key,uname varchar2(20),password var ...
- Binary Trees
1. Definiation What is Binary Trees? Collection of node (n>=0) and in which no node can have more ...
- OMCS开发手册(03) -- 多媒体服务器
前面我们已经详细介绍了基于OMCS开发网络多媒体应用的客户端程序所必需掌握的内容,现在我们来看一下OMCS服务端的开发.对于使用者而言,OMCS的服务端就非常简单了,只要实现一个用户验证的接口,挂接到 ...
- java实现UDP聊天---转载
import java.io.*; import java.net.*; class Send implements Runnable { private DatagramSocket ds; pub ...