This commit is contained in:
陈浩南 2024-05-06 14:27:21 +08:00
parent 348830084b
commit 9ab1997e78

View File

@ -1,3 +1,5 @@
# 设置 SSH agent forwarding
为了区分登陆 jykang@hpc.xmu.edu.cn 时使用的密钥并分密钥统计使用情况需要启用一项名为“SSH agent forwarding”的功能。
接下来的内容将带领您在 Windows 系统上配置 SSH agent forwarding。
@ -60,11 +62,17 @@
![](putty3.png)
之后的内容仅供有兴趣的用户参考,不建议小白用户尝试。
---
# 其它内容
接下来的内容不是使用 jykang@hpc.xmu.edu.cn 的必需内容,不须要阅读。
如果您按照上面的步骤配置 SSH agent forwarding 失败,那么请再次仔细阅读上面的内容,**接下来的内容对您没有帮助**。
接下来的内容包括:
* 解释为什么不转发 agent 就无法区分不同密钥。
* 介绍一些可能有用的附加功能,例如区分使用同一个密钥的不同用户,以及如何设置任务进度微信通知。
**为什么不转发 agent 就无法区分不同密钥?**:
如果你好奇为什么不使用 Pageant 就无法区分使用不同密钥的登陆:
@ -113,28 +121,33 @@ flowchart TB
事实上linux 的管理(统计用户使用的资源,等)非常依赖于不同的用户,即用高权限的用户去管理低权限的用户。
大家都使用同一个账户的情况下,很多管理的功能没有现成的解决方案(要自己手写代码、思考如何设计),甚至完全无法实现。
写这些东西花了我好几天
整这个东西真的挺麻烦的
**设置子账户**:
如果您希望进一步区分使用同一个密钥的不同用户,可以修改 `TERM` 变量,加上 `hpcstat_subaccount:your_name:` 前缀。
一个老师拿到密钥后,可能会将它分发给多个不同的学生。
如果希望区分不同学生的使用情况,可以修改 `TERM` 变量,加上 `hpcstat_subaccount:your_name:` 前缀,
以此来进一步区分使用同一个密钥的不同用户。
对于 PuTTY 来说,`TERM` 变量在 Connection -> Data -> Ternimal-type string 中修改。
例如,如果原本的 `TERM` 变量是 `xterm`,那么修改后的 `TERM` 变量可以是 `hpcstat_subaccount:chn:xterm`
`TERM` 变量只在交互式登陆时有效,因此无法在 WinSCP 中使用。
如果设置了子账户,那么会额外统计不同子账户的使用情况(登陆次数、投递的任务,等)。
设置子账户不影响按密钥统计的功能(即,按照密钥统计的结果,是所有使用这个密钥的用户的总和,无论是否设置了子账户)。
如果设置了这个参数,那么会额外统计不同子账户的使用情况(登陆次数、投递的任务、占用的核时,等)。
是否设置这个参数都不影响按密钥统计的功能(即,按照密钥统计的核时,是所有使用这个密钥的用户的总和,无论是否设置了这个参数)。
这个功能只是为了方便使用,事实上这个统计结果很容易造假
同时,子账户的统计结果也仅供参考,事实上这个统计结果很容易造假
(如果 A 和 B 都使用同一个密钥登陆,那么显然 B 可以在 TERM 中填入 A 的名字以假装自己是 A把自己用的核时都算到 A 头上)。
> [!WARNING]
> 不正确地修改 `TERM` 变量会导致一些程序无法正常工作,尝试时应该仔细且小心。这也是不建议小白用户尝试的原因
> 如果 `TERM` 变量的格式设置得不正确PuTTY 登陆后一些程序会无法正常工作,因此尝试时应该仔细且小心
**PuTTY 登陆时自动跳转**:
如果您希望在登陆时自动跳转到自己的目录下,可以在 `TERM` 中再增加以下前缀:`chn_cd:your_path:`。
例如,将 `TERM` 变量修改为 `chn_cd:linwei/chn:xterm`,那么使用 PuTTY 登陆后会自动跳转到 `linwei/chn` 目录下。
如果同时使用了 `hpcstat_subaccount``chn_cd`,那么 `hpcstat_subaccount` 必须在 `chn_cd` 之后,
例如 `chn_cd:linwei/chn:hpcstat_subaccount:chn:xterm`
@ -146,9 +159,13 @@ flowchart TB
https://wxpusher.zjiecode.com/wxuser/?type=1&id=75864#/follow
```
你应该会被引导去关注一个公众号。关注之后会收到一条包含 UID 的消息。把下面的内容发给我:
* 你的 UID
* 你使用的密钥的指纹(用 PuTTY 登陆时会显示)
* 如果使用了子账户,还需要告诉我你的子账户名
您应该会被引导去关注一个公众号WxPusher 消息推送平台)。关注这个公众号之后会收到一条包含 UID 的消息。
然后把下面的信息发给我:
* 您的 UID
* 您使用的密钥的指纹(用 PuTTY 登陆时会提示)
* 如果使用了子账户(在 `TERM` 中设置了 `hpcstat_subaccount`),还需要告诉我您设置的子账户名
我会去设置好,之后你投递的任务有新进度(例如,开始运行、运行结束)时就会收到微信通知。
之后您投递的任务有新进度(例如,开始运行、运行结束)时就会通过这个公众号收到通知。
需要注意的是,这个 UID 会被明文写到 jykang 上的文件里。
也就是说存在这样的风险:有权限登陆 jykang 的人都有权限通过这个公众号给您发消息。