2023-11-25 02:20:55 +08:00
|
|
|
|
# 集群注册登录说明
|
2024-04-16 00:25:27 +08:00
|
|
|
|
集群登录账户通过[NASP Registry](https://git.nasp.fit/NASP/registry)仓库管理。
|
2023-11-25 02:20:55 +08:00
|
|
|
|
|
|
|
|
|
## 使用方法
|
|
|
|
|
|
2024-04-16 00:25:27 +08:00
|
|
|
|
集群的跳板机(`nasp.fit:36022`)、重装后的实验机(`g1`-`g16`),均强制使用秘钥对的方法登录,不能通过密码登录。如果你没有现成的秘钥对,需要先创建一个。
|
2023-11-25 02:20:55 +08:00
|
|
|
|
|
|
|
|
|
你需要把**公钥**上传到仓库的`/authorized_keys/<your_user_name>/`目录下。路径中的用户名将成为你在实验机上的用户名,需要满足unix用户名标准,即:以小写字母开头,只能包含小写字母、数字、连字符和下划线。你可以用下面的命令测试你的用户名:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
check_username() {
|
|
|
|
|
if ( echo $1 | grep -qxE "^[a-z][-a-z0-9_]*\$" ); then
|
|
|
|
|
echo "GOOD"
|
|
|
|
|
else
|
|
|
|
|
echo "BAD"
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
check_username "111"
|
|
|
|
|
# BAD
|
|
|
|
|
check_username "a111"
|
|
|
|
|
# GOOD
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**注意:使用非法的用户名可能导致集群配置崩溃!**
|
|
|
|
|
|
|
|
|
|
`/authorized_keys/<your_user_name>/`目录下可以包含一个或多个文件,每个文件中可以包含一个或多个(由换行符分隔开的)公钥,可以按照你的喜好安置文件。
|
|
|
|
|
|
2024-04-16 00:25:27 +08:00
|
|
|
|
[NASP Registry](https://git.nasp.fit/NASP/registry)仓库的主分支(main)受到保护,用户无法直接向其推送更新。所以你需要:
|
2023-11-25 02:20:55 +08:00
|
|
|
|
- 如果你是新用户,联系管理员,把你加入NASP组织;
|
2024-04-16 00:25:27 +08:00
|
|
|
|
- 克隆仓库到本地,创建一个新的分支:`git clone https://git.nasp.fit/NASP/registry && cd registry && git checkout -b <your_branch_name> `
|
2023-11-25 02:20:55 +08:00
|
|
|
|
- 根据上面的指导,添加你的公钥;
|
|
|
|
|
- 在修改完成之后,提交修改,推送新分支到远端:`git add -A && git commit -m "add my key" && git push -u origin <your_branch_name>`
|
2024-04-16 00:25:27 +08:00
|
|
|
|
- 在网站上创建[合并请求(mr)](https://git.nasp.fit/NASP/registry/compare/main...main),拉取从你的分支合并到主分支;可参考:[#41](https://git.nasp.fit/NASP/registry/pulls/41)
|
2023-11-25 02:20:55 +08:00
|
|
|
|
- 找到另一位在NASP组织内的同学,让其批准你的合并请求,如图:![](attachments/6386bc2c5a9d3dc7dc0c9ee5a4b67ed.png)
|
|
|
|
|
- 随后,你可以进行合并操作(创建压缩提交),并删除你的分支。
|
|
|
|
|
|
2024-04-16 00:25:27 +08:00
|
|
|
|
至多五分钟后,你就可以登录跳板机。跳板机的地址是`nasp.fit`,用户名固定为`ssh`,端口号`36022`:
|
2023-11-25 02:20:55 +08:00
|
|
|
|
|
|
|
|
|
```bash
|
2024-04-16 00:25:27 +08:00
|
|
|
|
ssh -p 36022 ssh@nasp.fit
|
2023-11-25 02:20:55 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
随后,在跳板机上,你可以用你的用户名登录实验机(端口号`12022`):
|
|
|
|
|
|
2023-12-05 17:29:25 +08:00
|
|
|
|
> 如果你没有使用SSH Agent,下面这条命令可能会认证失败,提示输入密码。原因是,实验机要求使用公私钥认证,但私钥存在你本地电脑上而不在跳板机上。使用SSH Agent,可以让你本机的私钥在跳板机上工作;否则,请跳过下面这条命令,直接使用`ProxyJump`选项。
|
|
|
|
|
|
2023-11-25 02:20:55 +08:00
|
|
|
|
```bash
|
|
|
|
|
ssh -p 12022 <your_user_name>@g7
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
通过配置ssh的`ProxyJump`选项,你可以将上两步操作合二为一,做到跳板机对用户透明:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
# the same for scp/sftp
|
2024-04-16 00:25:27 +08:00
|
|
|
|
ssh -p 12022 -o ProxyJump=ssh@nasp.fit:36022 <your_user_name>@g7
|
2023-11-25 02:20:55 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
或者在`~/.ssh/config`里面配置:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
Host g7
|
|
|
|
|
HostName g7
|
|
|
|
|
User <your_user_name>
|
|
|
|
|
Port 12022
|
2024-04-16 00:25:27 +08:00
|
|
|
|
ProxyJump ssh@nasp.fit:36022
|
2023-11-25 02:20:55 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
从而能够在vscode中远程连接。
|
|
|
|
|
|
2023-12-05 17:29:25 +08:00
|
|
|
|
### 疑难解答
|
|
|
|
|
|
|
|
|
|
如果遇到任何连接不上的问题,请加入`-v`选项查看日志:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
# 检查到跳板机的连接性
|
2024-04-16 00:25:27 +08:00
|
|
|
|
ssh -v -i path/to/your/private_key -p 36022 ssh@nasp.fit
|
2023-12-05 17:29:25 +08:00
|
|
|
|
# 检查到实验机的连接性
|
2024-04-16 00:25:27 +08:00
|
|
|
|
ssh -v -i path/to/your/private_key -p 12022 -o ProxyJump=ssh@nasp.fit:36022 <your_user_name>@g7
|
2023-12-05 17:29:25 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
如果你无法解决连接问题,请联系集群管理员协助。
|
|
|
|
|
|
2023-11-25 02:20:55 +08:00
|
|
|
|
## 目录结构
|
|
|
|
|
|
|
|
|
|
- `authorized_keys` 用户公钥
|
|
|
|
|
- 若干以用户名命名的文件夹
|
|
|
|
|
- 若干用户公钥文件
|
|
|
|
|
- `authorized_keys` 历史遗留的公钥(将被移除)
|
|
|
|
|
- `scripts` 若干配置脚本
|
|
|
|
|
- `jumpserver_cron.sh` 跳板机上的定时任务脚本
|
|
|
|
|
- `jumpserver_deploy.sh` 跳板机部署脚本
|
|
|
|
|
- `testbed_cron.sh` 实验机上的定时任务脚本
|
|
|
|
|
- `testbed_deploy.sh` 实验机部署脚本
|
|
|
|
|
- `nasp` nasp用户组的sudo配置
|