使用shell脚本编写SSH登录选择小工具

起因在于开发过程中,总是要求进行ssh登录,公司的机器,又不能做ssh的免登陆,只好一次次的进行ssh到机器,然后输入密码等等繁琐的操作。关键这个事情还得每天都干好几次。

有的同学在window下,使用了类似Xsheel等工具,能够帮助你保存远端的服务器的ip和密码。但是在Linux下,就不太好选择工具。

我最近在学习shell脚本命令,了解到了一下几个命令,于是尝试着写了写。
先看效果:

选择登录环境.png

实现这个其实很简单,使用shell的select语句就能够实现,以下是示例代码:

#!/bin/bash
# Bash Menu Script Example

PS3='Please enter your choice: '
options=(
  "测试环境1"
  "测试环境2"
  "Quit"
)

select opt in "${options[@]}"
do
    case $opt in
        "测试环境1")
            ~/ssh/login_test1.sh
            break
            ;;
        "测试环境2")
            ~/ssh/login_test2.sh
            break
            ;;
        "Quit")
            break
            ;;
        *) echo "invalid option $REPLY";;
    esac
done

只要输入1/2等对应的数字就能够执行对应case下的sh脚本。

sh下的脚本里,是我们真正要进行ssh登录的脚本,以下是一个例子:

#!/usr/bin/expect -f
set timeout 30
spawn ssh [email protected]
expect "Password:"
send "thisismypassword\r"
interact

如果有堡垒机等等需要登录的话,可以仿照例子多写几行expect和send命令就行。

然后将第一个设置一个alias就行了。比如在用户目录下的.bashrc后增加

alias login="第一个sh的路径"

然后注销后,重新打开终端或者直接source后,就可以使用login命令来进行登录的选择了。

你可能感兴趣的:(使用shell脚本编写SSH登录选择小工具)