Linux服务器远程登录服务器go工具用法

背景

平时工作中总是需要登录到线上服务,以解决各种问题,比如:
远程登录线上日志机器查看PHP Error Log、Mysql Error Log等
登录QA的测试机检查代码是否正常发布、各项配置是否正确
登录个人开发机
但是公司服务器都是需要通过跳板机登录,每次登录线上机器都需要先到跳板机登录一下,再登录到目标机器,很繁琐,而且必须得记得住目标机器的IP或者机器名才能尽快登录上去,要不然还得一顿查。。。

所以弄了个小工具,实现快捷登录(其实是几年前写的一个小脚本,最近升级了一下),分享出来大家使用。功能大概包括:
自定义远程机器的快捷登录方式
查看所有已配置过的快捷方式
支持跳板机和非跳板机两种场景的登录
对于任意一个有权限的机器,可以直接一条命令登录
可以指定任意账户登录线上服务器
总之,还是蛮方便的,简单的小工具,Open给大家,也许你也用得上。
一、工具下载

百度搜索go工具:go.zip

二、配置&部署

1、将文件保存到固定的某个目录

cp ~/Downloads/go ~/Documents/Tools/

2、修改权限

chmod 0755 ~/Documents/Tools/go

3、配置到环境变量中

cd /usr/bin
ln -s ~/Documents/Tools/go go

4、修改配置

vim ~/Documents/tools/go

注:需要修改的内容有:

username: 用于登录跳板机
default_user:默认已这个账户登录到线上机器
server_list:自定义的登录快捷方式

三、使用

1、查看帮助

go -h

 

2、查看所有快捷方式

go -list

3、以默认用户登录某线上机器

go syq-fe03

4、以指定用户登录newlab机器

go newlab xianliezhao

5、任意一台有权限的机器,但是没有配置快捷方式

go 172.16.0.31 work

6、关于配置&登录非跳板机的机器(比如我的阿里云机器)

go aliyun

四、范例

五、脚本源代码

#! /bin/sh

##################################################################
# 此工具用于快捷登录线上机器
# author:xianliezhao@meilishuo.com
##################################################################

# 你的名字,用于登录到跳板机
username="xianliezhao"

# 默认以这个账户登录到线上机器
default_user="work"

# 定义机器的快捷方式
server_list=(
#----------------------------------------------------------------------------------------------------
#   "快捷方式        机器名/IP         是否需要跳板机(默认是1:需要)    用什么权限登录(默认是:$default_user)"
#----------------------------------------------------------------------------------------------------
    "syq-fe01       syq-bizfe-01"
    "syq-fe02       syq-bizfe-02"
    "syq-fe03       syq-bizfe-03"
    "syq-fe04       syq-bizfe-04"
    "dfz-fe01       dfz-bizfe-01"
    "dfz-fe02       dfz-bizfe-02"
    "dfz-fe03       dfz-bizfe-03"
    "dfz-fe04       dfz-bizfe-04"
    "dfz-fe05       dfz-bizfe-05"
    "dfz-fe06       dfz-bizfe-06"
    "dfz-fe07       dfz-bizfe-07"
    "dfz-fe08       dfz-bizfe-08"
    "dfz-snake01    dfz-bizsnake-01"
    "dfz-snake02    dfz-bizsnake-02"
    "dfz-snake03    dfz-bizsnake-03"
    "dfz-doota01    dfz-dootafe-01"
    "dfz-doota02    dfz-dootafe-02"
    "dfz-doota03    dfz-dootafe-03"
    "aliyun         www.baidufe.com       0   root"
)

# 使用帮助
help(){
    echo "
    远程登录工具:version 1.0
    使用方法:
        【1】:go 机器名 [登录账号]

            用法1:
                默认以work权限登录newlab ----> go newlab
            用法2:
                以rd权限登录newlab ----> go newlab rd
            用法3:
                以个人账号权限登录newlab ----> go newlab xianliezhao

        【2】:查看所有机器快捷方式:
            go -list
        \n"
    exit 1
}

# 查看所有快捷方式
show_list() {
    echo "\n您可以使用快捷方式进行登录如下服务器,如:go newlab rdol\n"
    echo "+------------------------------------------------------------------------------+"
    for (( i=0;i<${#server_list[*]};i=i+5 ));do
        A=`echo ${server_list[$i+0]} | awk '{print $1}'`
        B=`echo ${server_list[$i+1]} | awk '{print $1}'`
        C=`echo ${server_list[$i+2]} | awk '{print $1}'`
        D=`echo ${server_list[$i+3]} | awk '{print $1}'`
        E=`echo ${server_list[$i+4]} | awk '{print $1}'`

        # 格式化输出
        printf "%-1s %-13s %-1s %-13s %-1s %-13s %-1s %-13s %-1s %-12s %-1s\n" \
                \| ${A:-' '} \| ${B:-' '} \| ${C:-' '} \| ${D:-' '} \| ${E:-' '} \|
    done
    echo "+------------------------------------------------------------------------------+\n"
}

# 远程登录
remote_login(){

    # 默认的目标机器是$1
    host=$1

    # 跳板机
    proxy="@osys11.meilishuo.com -t ssh "

    # 如果指定了第二参数,则表示指定的账户登录
    if [ "$2" != "" ];then
        default_user=$2
    fi

    # 如果默认的登录用户是 rdol ,则在osys11机器上切换一下用户
    if [ "$default_user" == "rdol" ];then
        proxy=$proxy"rdol@osys11 -t ssh ";
    fi

    # 从server_list里查询是否有预定的快捷方式
    for key in ${!server_list[*]} ; do
        A=`echo ${server_list[$key]} | awk '{print $1}'`    # 快捷方式
        B=`echo ${server_list[$key]} | awk '{print $2}'`    # 机器名/IP
        C=`echo ${server_list[$key]} | awk '{print $3}'`    # 是否需要通过跳板机登录
        D=`echo ${server_list[$key]} | awk '{print $4}'`    # 登录用户名
        if [ "$host" == "$A" ];then
            host=$B;
            if [ "$C" == "0" ];then
                proxy="";
            fi
            if [ ! -z $D ];then
                default_user=""
                username=$D
            fi
            break;
        fi
    done

    # 登录目标机器
    ssh $username$proxy$default_user@$host
}

clear
# 未指定参数,或者参数为 -h | --help,则出现使用帮助
if [[ "$1" == "" || "$1" == "-h" || "$1" == "--help" ]];then
    help;

# 查看所有快捷方式
elif [ "$1" == "-list" ];then
    show_list;

# 执行登录
else
    remote_login $1 $2;

fi

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索权限
, 服务器
配置
远程连接linux服务器、远程登录linux服务器、远程访问linux服务器、远程linux服务器、远程控制linux服务器,以便于您获取更多的相关知识。

时间: 2024-11-08 23:56:05

Linux服务器远程登录服务器go工具用法的相关文章

备份-linux采集远程windows服务器上的数据

问题描述 linux采集远程windows服务器上的数据 问题:公司有上百台windows服务器,我需要在每天将这些服务器上的某些文件备份到一台linux服务器中,如何做最方便?每天的总数据量不超过10g 解决方案 如果文件特别多的话可能时间比较长,如果是大文件的话网速快就行了 解决方案二: window 配置FTP->linux设置计划任务->每天拉

Windows Server 2008解决无法远程登录服务器

为了方便管理局域网中的服务器系统,11545.html">我们有时会在普通工作站系统本地尝试通过网络远程登录进目标Windows Server 2008服务器系统,来对服务器系统进行远程控制操作,可是,在实际远程登录服务器系统的过程中,我们往往会遭遇无法借助网络通道进行远程登录的故障现象.在排除物理线路连接.网络访问设置等各种可能因素后,如果还不能解决故障现象,我们就需要认真检查Windows Server 2008服务器系统中的"Net logon"服务是否已经启动成

远程登录服务器时提示未被授予终端服务器登录权限的问题

在登录服务器时,我们有时会遇到提示"要登录到远程计算机,您必须被授予通过终端服务登录的权限--",默认情况下,我们看到提示应该考虑到的是远程登录时输入的域帐号未被加入到服务器的远程管理组中或本地管理员组中. 但是有时我们也会遇到已经将远程登录时用到的域帐号加入到了需登录服务器的本地管理员组中或远程管理组中,但是依然会提示无法登录,如下图所示: 本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Servers/zs/ 之前遇到这

修改服务器远程登录端口给服务器安全保障

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 就黑客而言,扫描端口入侵是常见的手段,批量扫描数据库,弱口令,如1433(MMSQL数据库默认端口),3306(MYSQL数据库默认端口)等,而批量扫描入侵的第一步,就是扫描3389远程登录端口,通过这个端口,可以判断该IP是不是活的,是不是服务器,是不是广域网,这样通过第一步的筛选,可得到一些有用的IP数据信息.从而进行更深入的渗透.接下来

Linux系统远程连接服务器命令行模式

  对于很多新手来说,如何用Windows远程Linux操作系统,是个前进的大问题.如果这个问题前进不了,其他更别说了. Linux或Max OS X系统电脑,登录步骤为: 1.打开ssh客户端 2.用户名:root 3.服务器: 输入服务器的IP 端口默认为22 4.输入服务器密码进行登录 Windows系统电脑,登录步骤为: 一.下载Putty,它是一款远程连接工具.直接下载 该工具是免费的,且不需要安装,建议到官网http://www.putty.org下载 . 二.启动Putty.exe

paramiko模块安装和使用(远程登录服务器)_python

一:简介 由paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接. 由于使用的是python这样的能够跨平台运行的语言,所以所有python支持的平台,如Linux, Solaris, BSD, MacOS X, Windows等,paramiko都可以支持,因此,如果需要使用SSH从一个平台连接到另外一个平台,进行一系列的操作时,paramiko是最佳工具之一. 举个常见的例子,现有这样的需求:需要使用windows客户端,远程连接到

如何实现Linux主机远程登录ssh免密码

一.情景 公司刚上几台Linux,现在要把主机之间实现都能远程ssh免密码登陆. 二.原理 很简单,使用ssh-keygen在主机A上生成private和public密钥,将生成的public密钥拷贝到远程机器主机B上后,就可以使用ssh命令无需密码登录到另外一台机器主机B上. 三.步骤 主机A: 1.生成公钥和私钥文件id_rsa和id_rsa.pub (敲三下回车即可). [root@bogon ~]# ssh-keygen -t rsa   Generating public/privat

MSSQLSERVER跨服务器连接(远程登录)的示例代码_MsSql

MSSQLSERVER跨服务器链接服务器创建方法如下 复制代码 代码如下: --声明变量  Declare @svrname varchar(255),  @dbname varchar(255), @sapassword varchar(255)   --请在执行前,根据实际情况修改下列变量 select @svrname  = '目标服务器名',       @dbname   = '目标数据库',   @sapassword  = 目标数据库密码    if exists ( select

MSSQLSERVER跨服务器连接(远程登录)的示例代码

MSSQLSERVER跨服务器链接服务器创建方法如下 复制代码 代码如下:--声明变量  Declare @svrname varchar(255),  @dbname varchar(255), @sapassword varchar(255)   --请在执行前,根据实际情况修改下列变量 select @svrname  = '目标服务器名',       @dbname   = '目标数据库',   @sapassword  = 目标数据库密码    if exists ( select