diff --git a/doc/setup.md b/doc/setup.md index 780508e..a9caad0 100644 --- a/doc/setup.md +++ b/doc/setup.md @@ -75,10 +75,18 @@ SSH 连接并不是直接由 jykang 用户处理的, 我们只能控制 `jykang` 用户运行的进程,但这里拿不到任何关于密钥的信息。 ```mermaid -graph LR -A[(密钥文件)] -.->|从硬盘读取| B["SSH client \n (putty, WinSCP, etc.) \n run on Windows"] -B <--> |认证信息\n加密的数据| C["SSH server \n managed by root"] -C <--> |"解密后的数据\n(不包含密钥信息)"| D["Other programs \n (bash, VASP, etc.) \n managed by jykang"] +flowchart TB + subgraph "Run on windows" + A[(密钥文件)] -.->|从硬盘读取| B["SSH client (putty, WinSCP, etc.)"] + end + subgraph "Run on hpc by root" + C["SSH server (sshd)"] + end + B <--> |"认证信息 & 加密的数据"| C + subgraph "Run on hpc by jykang" + D["Other programs (bash, VASP, etc.)"] + end + C <--> |"解密后的数据(不包含密钥信息)"| D ``` Pageant 程序就是所谓的“SSH agent”。“SSH agent forwarding” 就是将到 Pageant 的连接通过已经建立的 SSH 连接转发给远程服务器, @@ -86,12 +94,20 @@ Pageant 程序就是所谓的“SSH agent”。“SSH agent forwarding” 就是 “SSH agent forwarding” 典型的用途是在远程服务器上使用本地的密钥再次登陆其他服务器,而不是为了区分使用不同密钥的登陆。 ```mermaid -graph LR -A[(密钥文件)] -.->|从硬盘读取| E["SSH agent \n (pageant) \n run on Windows"] -E <-->|认证信息| B["SSH client \n (putty, WinSCP, etc.) \n run on Windows"] -B <--> |认证信息\n加密的数据| C["SSH server \n managed by root"] -C <--> |"解密后的数据\n(不包含密钥信息)"| D["Other programs \n (bash, VASP, etc.) \n managed by jykang"] -E <-...-> |"通过已经建立的 SSH 连接转发\n密钥信息"| D +flowchart TB + subgraph "Run on windows" + A[(密钥文件)] -.->|从硬盘读取| E["SSH agent (pageant)"] + E <-->|认证信息| B["SSH client (putty, WinSCP, etc.)"] + end + subgraph "Run on hpc by root" + C["SSH server (sshd)"] + end + B <--> |"认证信息 & 加密的数据"| C + subgraph "Run on hpc by jykang" + D["Other programs (bash, VASP, etc.)"] + end + C <--> |"解密后的数据(不包含密钥信息)"| D + E <-...-> |"通过已经建立的 SSH 连接转发密钥信息"| D ``` 另外,如果您希望进一步区分使用同一个密钥的不同用户,可以修改 `TERM` 变量,加上 `hpcstat_subaccount:your_name:` 前缀。