起因在于开发过程中,总是要求进行ssh登录,公司的机器,又不能做ssh的免登陆,只好一次次的进行ssh到机器,然后输入密码等等繁琐的操作。关键这个事情还得每天都干好几次。
有的同学在window下,使用了类似Xsheel等工具,能够帮助你保存远端的服务器的ip和密码。但是在Linux下,就不太好选择工具。
我最近在学习shell脚本命令,了解到了一下几个命令,于是尝试着写了写。
先看效果:
实现这个其实很简单,使用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 user_name@127.0.0.200
expect "Password:"
send "thisismypassword\r"
interact
如果有堡垒机等等需要登录的话,可以仿照例子多写几行expect和send命令就行。
然后将第一个设置一个alias就行了。比如在用户目录下的.bashrc后增加
alias login="第一个sh的路径"
然后注销后,重新打开终端或者直接source后,就可以使用login命令来进行登录的选择了。