相信程序员们都避免不了经过堡垒机登陆服务器来查看问题,如何快速登陆服务器而不用繁琐地输入密码等等步骤呢?下面的shell脚本帮你完成。
auto-login.sh程序员
#!/usr/bin/expect -f #定义堡垒机帐号/密码/IP set user *** set passwd *** set bastion_host *** if { $argc == 1 } { #将第一个参数赋值给dest_host set dest_host [lindex $argv 0] #qa if { $dest_host == "qa" } { set dest_host qa-web-v01 } #preview if { $dest_host == "pre" } { set dest_host sys-pre-v01 } } #执行ssh操做,登录到堡垒机 spawn ssh $user@$bastion_host #检测命令行的返回信息,匹配password关键字 expect "*password:" #自动输入密码 回车 send "$passwd\n" #没有参数直接返回终端 if { $argc == 0 } { interact exit 1 } #监测命令行的返回信息,匹配下面关键字 expect "Opt or Host>:" #发送登陆的机器 send "$dest_host\n" #自动交互 interact
而后就是将这个脚本执行放到.bashrc文件或是your_custom.zsh(mac os)文件中别名就ok啦web
alias autologin='/usr/local/sbin/auto-login.sh'
接下来就能够:shell
$ autologin qa //直接到qa机器 $ autologin pre //直接到preview机器 $ autologin {machineName} //直接到指定机器 $ autologin //跳到堡垒机欢迎界面 能够查看须要的机器名称