经常需要登录服务器,然后需要找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