登陆ssh服务器需要账号与密码,而往往我们需要频繁的登陆与登出或者切换服务器,会很繁琐。其实可以使用expect来实现简易命令登陆ssh服务器,比如一个“go”~
一、安装expect
#ubuntu
sudo apt-get install expect
#Mac
需要源码编译安装tcl与expect,自行搜索
若不成功,先更新下源再安装
sudo apt-get update
二、登陆脚本
#!/usr/bin/expect
# 设定超时时间为3秒
set timeout 3
set USRNAME "你的账户名@ip地址"
set PASSWORD "你的密码"
# fork 一个子进程执行 ssh 命令
spawn ssh -X "$USRNAME"
# 期待匹配到 'user_name@ip_string's password:'
expect "*password*"
# 向命令行输入密码并回车
send "$PASSWORD\n"
# send "sudo -s\r"
# 帮我切换到常用的工作目录
# send "cd /data/logs\r"
# 允许用户与命令行交互
interact
修改上面的
set USRNAME "你的账户名@ip地址"
set PASSWORD "你的密码"
将此文本保存成一个sh文件,比如go.sh
三、修改.bashrc
#ubuntu
vim ~/.bashrc
#Mac
vim ~/.bash_profile
添加一行
alias go='/home/ubuntu/bash/go/go.sh'
这里的go.sh为刚才保存脚本的存放路径,之后
#ubuntu
source ~/.bashrc
#Mac
source ~/.bash_profile
即可在终端中使用“go”来实现登陆ssh服务器