【效率工具】SSH一键登录脚本(可一键从跳板机登录线上服务器)

说明

前阵子上线,一次性上了十个服务,一直上到凌晨才完事,期间每个服务都要先输入跳板机的登录信息来登录跳板机,然后再输入线上服务器的信息来登录线上服务器,实在是太过于麻烦,而且有些服务还有好几台服务器,检查问题的时候,服务器跳来跳去的,简直苦不堪言。

于是,便萌发了用shell脚本的方式来一键跳转的想法,先上github上搜了搜现成的轮子,发现都不太好用,要不就是没说明,要不就是只能登一台服务器,不能满足从跳板机A跳转到线上服务器B的需求。

所以,还是自己动手,丰衣足食。

Shell脚本

Shell脚本已经发布到了github上,链接在此:https://github.com/MFrank2016/GotoSSH

这个脚本借鉴了AutoSSH的脚本,并将其进行了修改,使得能够支持从跳板机直接跳转登录服务器。

使用说明

GotoSSH是一个一键登录SSH的脚本,可直接从跳板机登录到线上服务器,致力于帮助你提高工作效率。

安装依赖

CentOS :

$ sudo yum install -y expect

Ubuntu :

$ sudo apt-get install tcl tk expect

Mac :

$ sudo brew install expect

安装 GotoSSH

$ git clone https://github.com/MFrank2016/GotoSSH.git
$ cd GotoSSH
$ chmod a+x gotossh
$ sudo cp gotossh /usr/local/bin/

配置

$ vim ~/.gotossh_config
server_name|ip|username|password|port|rely_server_no

最后一列是代表该服务器依赖于哪个服务器,如果该列的值设置为0,代表不依赖于其他服务器,否则代表需要先登录其他服务器后才能登录该服务器,目前暂时只能从A跳转到B,不支持多跳转,感觉没有必要,如果有需要,把脚本稍微改改就行了。

举个栗子

$ vim ~/.gotossh_config
test_server|192.168.0.1|root|password|22|0
online_server|192.168.2.2|root|password|22|1

使用说明

$ gotossh
######################################################################################
#                                  [GOTO SSH]                                        #
#                                                                                    #
#                                                                                    #
# [1] test_server - 192.168.0.1:root                                                 #
# [2] online_server - 192.168.2.2:root                                               #
#                                                                                    #
#                                                                                    #
######################################################################################
Server Number:(Input Server Number Here)

OR

gotossh 1

OR

gotossh 2

因为配置文件里设置了服务器2依赖于服务器1,所以会先登录服务器1,然后再登录服务器2。

这样,只需要小手一点,就能直接登录线上服务器,岂不是美滋滋。

小结

虽然只是一个简单的脚本,奈何道法太浅,硬生生折腾了大半天才调试完成,但也算是了却了一桩心愿。

独乐了不如众乐乐,特此分享给大家,希望能对大家有所帮助。

如果觉得还不错,别忘了加个star?也欢迎关注我的公众号留言交流。

原文地址:https://www.cnblogs.com/mfrank/p/10612076.html

时间: 2024-08-14 19:48:07

【效率工具】SSH一键登录脚本(可一键从跳板机登录线上服务器)的相关文章

ssh远程登陆脚本(带跳板机)

mac自带的终端不太好用,被推荐了一个iterm2的终端替代工具,确实比自带的终端好用不少.下面记录下通过脚本一键远程登录的过程: 下载地址:http://m4.pc6.com/xuh3/iTerm2.zip 首先,准备好登陆脚本 #!/usr/bin/expect -f set user xxx set host 127.0.0.1 set port 22 #如果是默认端口可以不指定 set password xxx set timeout -1 spawn ssh -p $port [ema

Linux生成ssh公钥免密码登录远程主机和Xshell跨跳板机登录

##Linux生成ssh公钥免密码登录远程主机: 1:ssh-keygen -t rsa#生成密钥2:ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]#把本机的公钥追到远程主机172.16.205.117(登录账户hejm)的 ~/.ssh/authorized_keys 里注:如果ssh的端口不是22,可用参数p指定对应端口ssh-copy-id -i ~/.ssh/id_rsa.pub -p 23 [email protected] 或者通

通过SSH秘钥登录线上MySQL数据库(基于Navicat)

前言 生产环境的数据库往往需要经过严格的安全限制,所以禁用密码登录,使用秘钥的方式是一种相对安全的登录方式. 原理: 角色: 主机A:其他主机,有访问线上数据库的权限 主机B:线上数据库的主机 主机C:本机电脑,无访问线上数据库的权限 在本机C上(无访问B的权限),通过ssh配置的主机A(有访问B的权限),访问Navicat常规配置的主机B,即以A的身份连接使用B. 前期准备 生成ssh密钥对.可参考前期博文:快速通道 Navicat配置登录 1.连接的主机配置,如果连接的是线上数据库,就用线上

[转]ssh技巧之跳板机

转,原文:https://segmentfault.com/a/1190000020326898?utm_source=tag-newest ---------------------------------------------------- 在管理外网服务器时,出于安全等因素的考虑,我们一般不会把所有服务器都设置成可ssh直连,而是会从中挑选出一台机器作为跳板机,当我们想要连接外网服务器时,我们要先通过ssh登录到跳板机,再从跳板机登录到目标服务器. 下面我们用实验来展示一下跳板机的登录流

BAT脚本一键更新提交代码到线上

如果你发现你每天都在做一件非常繁琐的事情那么必定能将他简单化操作! 发现:当开发把代码提交到了代码服务器之后就没他们什么事情了,剩下的就是我们去将代码推送到线上服务器,这个过程并不复杂,但是非常的繁琐和无聊,首先我们要到开发的svn目录下面更新到最新的版本,再将推送的svn目录也更新一下,确保两个svn的目录是最新的,不然提交时有可能会出错,然后把开发svn目录复制到推送的svn目录下,并且提交,最后远程到推送服务器上进行代码拉取.推送 简化:一个bat脚本应该搞定的事情 @echo off #

【转】SSH穿越跳板机:一条命令跨越跳板机直接登陆远程计算机

转自:http://mingxinglai.com/cn/2015/07/ssh-proxycommand/ 今天在公司搭建跳板机,遇到一个比较麻烦的问题,这里简单记录一下,希望对有相同问题的人有所帮助. 我们公司的线上机器是下图这样的,A是我们本地的计算机,一般是windows系统,B是跳板机,C是目标机器,我们需要登录线上机器时,必须先登录跳板机,再登录目标机器. +-----+ +-----+ +-----+ | | | | | | | A +-----------> | B +-----

搭建ssh跳板机

搭建ssh跳板机 环境介绍: [[email protected] ~]# cat /etc/redhat-release  CentOS release 6.6 (Final) [[email protected] ~]# uname -r 2.6.32-504.el6.x86_64 //准备2-3台虚拟机,至少2台. 1.在所有机器上创建跳板机用户 [[email protected] ~]# useradd tb [[email protected] ~]# echo "123.com&q

Navicat for Mysql SSH tunnel 用跳板机解决方案

Navicat Mysql SSH tunnel不能使用跳板机,对于需要跳板机登录的主机,他自带的SSH Tunnel就是鸡肋了.其实从原理上分析,根本不需要开启他得SSH Tunnel,使用本机强大SSH端口转发,加上跳板代理,即可完美解决. 1.先取消已经设置的SSH Tunnel,如下图都清空 2.本地配置好跳板机,跳板机文章很多,百度即可.比如我的: 替换Host , User, 123.45.67.89,这些换成你自己对应的参数: vi ~/.ssh/config Host *.myd

线上服务 CPU 100%?一键定位 so easy!

转自:  https://my.oschina.net/leejun2005/blog/1524687 摘要: 本文主要针对 Java 服务而言 0.背景 经常做后端服务开发的同学,或多或少都遇到过 CPU 负载特别高的问题.尤其是在周末或大半夜,突然群里有人反馈线上机器负载特别高,不熟悉定位流程和思路的同学可能登上服务器一通手忙脚乱,定位过程百转千回. 对此,也有不少同学曾经整理过相关流程或方法论,类似把大象放进冰箱要几步,传统的方案一般是4步: top oder by with P:1040