#!/bin/bash
#-----------------------------------------------
# 脚本名称: ssh_host.sh
# 作者: whao
# 创建时间: 2025-04-15
# 版本: v0.3
# 描述:有秘钥的前提下,通过SSH服务远程连接服务器
#------------------------------------------------
#定制变量
USERNAME=root
PASSWORD=123456
#定制数组
touch /root/ssh_host/host.txt
readarray -t HOST_NAME < <(awk -F":" '{print $1}' /root/ssh_host/host.txt)
readarray -t HOST_IP < <(awk -F":" '{print $2}' /root/ssh_host/host.txt)
#定制函数1
keyless() {
echo -e "\e[31m 您即将进入${HOST_NAME[$num-1]}主机!!!\e[0m "
read -t1
sshpass -p ${PASSWORD} ssh ${USERNAME}@10.0.0.${HOST_IP[$num-1]}
}
#定制函数2
add_host(){
echo -e "\e[31m 请注意!主机序号最多为10\e[0m"
read -p "请输入您要添加的主机名: " host_name
read -p "请输入主机IP10.0.0.__: " ip
HOST_NAME+=($host_name)
HOST_IP+=($ip)
echo ${host_name}:${ip} >> host.txt
}
while true
do
#清屏
clear
echo -e "\e[34m--------SSH远程登录主机------------\e[0m"
echo -e "\e[32m┏━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\e[0m"
echo -e "\e[32m┃用户┃ ${USERNAME} ┃\e[0m"
echo -e "\e[32m┣━━━━╋━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┫\e[0m"
echo -e "\e[32m┃序号┃ 主机 ┃ IP ┃\e[0m"
echo -e "\e[32m┣━━━━╋━━━━━━━━━━┻━━━━━━━━━━━━━━━━━┛\e[0m"
for i in "${!HOST_NAME[@]}"
do
w=$((i+1))
echo -e "\e[32m┃\e[31m $w \e[32m ┃\e[31m ${HOST_NAME[$i]} 10.0.0.${HOST_IP[$i]} \e[0m"
done
echo -e "\e[32m┣━━━━┻━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━┓\e[0m"
echo -e "\e[32m┃50:退出┃55:添加主机┃60:删除主机 ┃\e[0m"
echo -e "\e[32m┗━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━━━┛\e[0m"
read -p "请输入需要登录的主机:" num
if [ $num -le 10 ]
then
keyless
#退出服务
elif [ $num -eq "50" ]
then
echo -e "\e[31m 欢迎您再次使用本服务.....\e[0m"
read -t1
exit 0
#添加主机
elif [ $num -eq "55" ]
then
add_host
#删除主机
elif [ $num -eq "60" ]
then
echo -e "\e[31m 您即将删除SSH主机\e[0m"
read -p "请输入您要删除的主机序号: " number
read -p "确定删除吗?(y/n): " ggbond
if [ $ggbond == "y" ]
then
sed -i "${number}d" host.txt
echo -e "您已删除$num号主机"
echo -e "目前,需要重启脚本更新"
read -t1
continue
else
echo -e "\e[31m are \e[32m you \e[33m ok \e[34m ? \e[0m"
read -t1
continue
fi
else
echo -e "\e[31m 请输入相应的主机序号!!!\e[0m"
read -t1
fi
done