简介
想要规范内部连接阿里云云服务器的方式,但是最近懒病犯了,先搞一个简易式的跳板机过渡一下,顺便在出一个教程,其他以后再说!
配置方法
创建密钥
登录阿里云,找到云服务器ECS控制台,点击密钥对:
ps:都用阿里云服务器了,谁还自己创建密钥,咋方便咋来。
点击创建密钥对,输入信息:
ps:注意红框处,这个密钥只能下载这一次,弄丢了,就没有了。
接下来绑定密钥对:
绑定完成后就可以使用密钥对登录了,使用SSH(Secure Shell)客户端软件远程登录,只要导入密钥就可以了:
ps:我这边使用的工具是Electerm,下载链接:https://github.com/electerm/electerm
跳板机配置
接下来就是配置跳板机了,首先创建一台虚拟机,然后远程登录上去,先测试是否可以使用密钥对登录到云服务器:
脚本配置:
#!/bin/bash
# 定义多个云服务器的配置信息,test.pem是我的密钥,请按照实际填写。
servers=(
"192.168.0.1 ecs-user /home/test/test.pem"
"xxx.xxx.xxx.xxx ecs-user test.pem"
"yyy.yyy.yyy.yyy ecs-user test.pem"
# 添加更多云服务器的配置信息
)
# 显示可选的云服务器列表供用户选择
echo "请选择要登录的云服务器:"
for ((i=0; i<${#servers[@]}; i++)); do
server_info=(${servers[$i]})
echo "$i. ${server_info[0]}"
done
# 提示用户输入选择
read -p "请输入数字选择要登录的云服务器: " choice
# 根据用户选择连接相应的云服务器
chosen_server=(${servers[$choice]})
ssh -i ${chosen_server[2]} ${chosen_server[1]}@${chosen_server[0]}
脚本释义
#!/bin/bash: 指定解释器为 Bash,即告诉系统这是一个 Bash 脚本。
servers=(...): 定义了一个名为 servers 的数组,其中包含多个云服务器的配置信息。每个配置信息由空格分隔的三个部分组成:服务器 IP 地址、用户名和密钥文件路径。
echo "请选择要登录的云服务器:": 输出提示消息,提示用户选择要登录的云服务器。
for ((i=0; i<${#servers[@]}; i++)): 循环遍历 servers 数组,${#servers[@]} 表示数组元素的个数。
server_info=(${servers[$i]}): 将当前循环到的服务器配置信息拆分为数组 server_info,其中 ${servers[$i]} 表示当前数组元素的值。
echo "$i. ${server_info[0]}": 输出每个服务器的序号和 IP 地址,其中 $i 是数组索引,${server_info[0]} 表示服务器的 IP 地址。
read -p "请输入数字选择要登录的云服务器: " choice: 提示用户输入要连接的云服务器的序号,并将用户的选择存储在变量 choice 中。
chosen_server=(${servers[$choice]}): 根据用户选择的序号,获取相应的云服务器配置信息,并存储在数组 chosen_server 中。
ssh -i ${chosen_server[2]} ${chosen_server[1]}@${chosen_server[0]}: 使用 SSH 连接到用户选择的云服务器。${chosen_server[2]} 表示密钥文件路径,${chosen_server[1]} 表示用户名,${chosen_server[0]} 表示服务器 IP 地址。
wq保存看看效果:
ps:这里我使用了bash test.sh(非root用户记得加sudo,sudo权限都没有,那你。。。)这个命令是因为脚本使用了 bash 的数组(array)功能,我这个环境使用的解释器不支持此功能。在有些系统中,/bin/sh 实际上可能链接到更简化的解释器,不支持数组语法,这是问题,需要改配置,但是现在既然使用bash可以运行,那就懒得改了。
使用 shc加密脚本(只防君子,不妨小人):
sudo apt-get update
sudo apt-get install shc
shc -f test.sh
sudo ./test.sh.x
OK,这样一个懒人简易版跳板机就搭建完成了。
今日推荐
游戏:《崩坏-星穹铁道》
推荐理由:我喜欢玩!