给要ssh的主机取个代号

原因

  1. 经常要ssh远程各种linux的主机
  2. 要记住用户名 还要记住主机的ip或者域名
  3. 想想就麻烦

ps: 写个shell 简化一下 说白了 就是取个代码给每台登录主机

准备

1. ~/.ssh_list(先来个配置文件 名字 路径随便取,但是要记下来后面用)

07 root@192.168.0.7
02 test@192.168.0.2

看了一下模版 是不是就知道怎么回事了,没错每行就是一组 以第一个空格分开 前面是代码 后面是目标

2. 核心脚本(几行搓搓的代码)

(short_ssh.sh)

#/bin/bash!


configfile=~/.ssh_list


show_list(){
    cat $configfile
}


if  [ $# == 0 ] || [ $1 == "-l" ] 
then
    echo "show list"
    show_list
    exit
elif [[ $1 = *"@"* ]]
then
    ssh -t $1
    exit
else
    IFS=$'\n' 
    for line in $(<$configfile)
    do
        arr=($(echo $line | tr " " "\n"))
        if [ ${arr[0]} == $1 ]
        then
            replace=""
            ssh_host=${line//$1" "/$replace}
            echo ssh  $ssh_host
            echo ${ssh_host} | xargs -o ssh
            exit
        fi
    done 
fi

内容不多 看看就知道怎么回事了

3. example

short_ssh.sh 02 => ssh test@192.168.0.2

呃记录一下

4. ps

1. 目标主机 你已配置了自己的远程公钥
2. 当然也可以跟着验证但是1方式更方便

2018-09-27

改了一下脚本 可以多带些参数更加灵活


阅读量: