经常需要登录服务器,然后需要找IP地址和密码,十分繁琐。现在编写一个脚本进行快捷登录。主要流程:配置ssh公钥,配置提供服务器列表,选择服务器进行登录。
一、配置服务器公钥
1.在本地计算机上生成 SSH 密钥对,包括公钥和私钥。可以使用以下命令生成 SSH 密钥对:
ssh-keygen
2.将公钥复制到远程服务器上。
scp id_rsa.pub root@10.100.234.1:/root/.ssh/others/
3.使用 SSH 登录到远程服务器,并将公钥添加到 authorized_keys 文件中。
cat /root/.ssh/others/id_rsa.pub >> ~/.ssh/authorized_keys
4.推出远程服务,在本地服务远程登录测试。
exit
ssh root@10.100.234.1
二、在本地服务器编写脚本快捷登录
vi /usr/bin/xserver
#!/bin/bash
# 定义服务器列表
servers=(
"10.100.234.1 test1"
"10.100.234.2 test2"
"10.100.234.3 test3"
"10.100.234.4 test4"
)
# 展示服务器列表
echo "请选择要登录的服务器:"
for i in "${!servers[@]}"; do
echo " $((i+1)). ${servers[$i]}"
done
# 读取用户输入
read -p "请输入服务器编号: " choice
# 验证用户输入
re='^[0-9]+$'
if ! [[ $choice =~ $re ]] || (( choice < 1 || choice > ${#servers[@]} )); then
echo "输入无效" >&2
exit 1
fi
# 提取用户选择的服务器
server=${servers[$((choice-1))]}
arr=($server)
ip=${arr[0]}
# 快捷登录所选服务器
ssh root@$ip
三、在本机使用脚本登录
[root@13 .ssh]# xserver
请选择要登录的服务器:
1. 10.100.234.1 test1
2. 10.100.234.2 test2
3. 10.100.234.3 test3
4. 10.100.234.4 test4
请输入服务器编号: 1
Last login: Tue Mar 28 17:49:12 2023 from 10.100.123.13