习惯使用iterm工具,但是每次连接服务器都要手动敲ssh以及账号密码很麻烦,可以使用zsh自定义命令快速连接服务器!
zsh的安装网上教程很多,这里不多介绍,自己百度装吧
自定义命令流程
1、编写服务器配置文件
我是在根目录下面,建立一个.data文件,隐藏文件(强迫症不想看见多余的文件,也可以不隐藏)
vi .data
ali|10.100.xx.xx|root|yourpwd
ali2|10.100.xx.xx|root|youpwd
.
.
.
.
.
分别是
name | ip | account | password
2、编写ssh命令
文件名随便,我是用的.co.sh
vi .co.sh
#!/usr/bin/bash
function auto_login_ssh(){
expect -c "
set timeout 3;
spawn ssh -i ~/develop/inno.pem -o StrictHostKeyChecking=no $2;
expect {
*assword:* {
send $1\r;
}
}
interact
"
return $?
}
if [ $# -ne 1 ]; then
echo "Invaild"
exit 1
fi
CONFIG_FILE={your file path}
NAME=$1
simplename=""
ipaddr=""
username=""
password=""
found=0
while read line ; do
simplename=$(echo $line | cut -d'|' -f1)
ipaddr=$(echo $line | cut -d'|' -f2)
username=$(echo $line | cut -d'|' -f3)
password=$(echo $line | cut -d'|' -f4)
if [ "$NAME" == "$simplename" ] ; then
found=1
break
fi
done < $CONFIG_FILE
if [ "$found" == 1 ] ; then
auto_login_ssh $password $username"@"$ipaddr
else
#echo "Undefined Config"
if [[ $NAME =~ ^([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$ ]]
then
auto_login_ssh password root"@"$NAME
else
echo "Undefined Config"
fi
fi
修改文件中 CONFIG_FILE 为 .data文件的绝对路径
保存文件即可
3、修改 .zshrc
vi .zshrc
添加 alias co='sh {path}/.co.sh' {path} 是你.co.sh文件的绝对路径
保存退出后命令行输入
source .zshrc 生效配置
4、然后就好啦,随便玩儿吧