将其它地方的信息迁移过来
This commit is contained in:
@@ -86,7 +86,67 @@ Windows 下不用教。Linux 下分两种情况:
|
||||
|
||||
## 自动启动 Pageant 并添加密钥
|
||||
|
||||
待补充。
|
||||
如果您觉得每次打开 Pageant 都要手动添加密钥很麻烦,希望可以将这个过程自动化;并且熟悉 Windows 命令行的使用,可以编写一个批处理文件。
|
||||
将下方代码用记事本保存,然后将扩展名从 `.txt` 改为 `.bat`,之后每次双击该文件即可启动 Pageant 并自动添加密钥:
|
||||
|
||||
```bash
|
||||
"C:\ProgramData\chocolatey\bin\PAGEANT.EXE" "Z:\.ssh\id_rsa.ppk"
|
||||
```
|
||||
|
||||
其中第一个引号内为 Pageant 的路径,第二个引号内为您的密钥文件的路径。也可以将该批处理文件放入开机启动项中,使得 Pageant 在开机时自动启动。
|
||||
|
||||
因为每个人的密钥文件以及 Pageant 的路径都可能不同,所以这里无法提供通用的批处理文件。
|
||||
|
||||
## 为什么不转发 agent 就无法区分不同密钥?
|
||||
|
||||
如果你好奇为什么不使用 Pageant 就无法区分使用不同密钥的登陆:
|
||||
|
||||
SSH 连接并不是直接由 jykang 用户处理的,
|
||||
而是由一个名为 `sshd` 的程序处理,它通常以 `root` 用户的身份运行。
|
||||
在完成认证后,`sshd` 会将 Windows 电脑发来的信息解密后转发给以 `jykang` 用户运行的进程,
|
||||
并将以 `jykang` 用户运行的进程的输出加密后发回给 Windows 电脑。
|
||||
我们只能控制 `jykang` 用户运行的进程,但这里拿不到任何关于密钥的信息。
|
||||
|
||||
```mermaid
|
||||
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 <b>jykang</b>"
|
||||
D["Other programs (bash, VASP, etc.)"]
|
||||
end
|
||||
C <--> |"解密后的数据(不包含密钥信息)"| D
|
||||
```
|
||||
|
||||
Pageant 程序就是所谓的“SSH agent”。“SSH agent forwarding” 就是将到 Pageant 的连接通过已经建立的 SSH 连接转发给远程服务器,
|
||||
使得远程服务器可以与 Pageant 通信,进而读取密钥信息。
|
||||
“SSH agent forwarding” 典型的用途是在远程服务器上使用本地的密钥再次登陆其他服务器,而不是为了区分使用不同密钥的登陆。
|
||||
|
||||
```mermaid
|
||||
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 <b>jykang</b>"
|
||||
D["Other programs (bash, VASP, etc.)"]
|
||||
end
|
||||
C <--> |"解密后的数据(不包含密钥信息)"| D
|
||||
E <-...-> |"通过已经建立的 SSH 连接转发密钥信息"| D
|
||||
```
|
||||
|
||||
事实上,linux 的管理(统计用户使用的资源,等)非常依赖于不同的用户,即用高权限的用户去管理低权限的用户。
|
||||
大家都使用同一个账户的情况下,很多管理的功能没有现成的解决方案(要自己手写代码、思考如何设计),甚至完全无法实现。
|
||||
整这个东西真的挺麻烦的。我也嫌麻烦(而且我要做的事情比大多数用户多得多)。要不是康老师一定要我做,我才不会做。
|
||||
如果你嫌这些麻烦,与其埋怨我,不如去建议自己的导师去自己申请一个账号用。
|
||||
|
||||
[^1]: MPI 是按照绝对路径来搜索可执行文件的。
|
||||
NixOS 的特性导致不同参数编译的 VASP 会被放在不同的目录下,因此会在其它节点上启动与最先启动的节点相同、但不是针对这些节点优化的 VASP。
|
||||
|
||||
Reference in New Issue
Block a user