第4部分a - 保护 SSH (Windows系统)
SSH提供了一个使用RSA公钥/私钥对的身份验证选项。 这允许您锁定节点,只能通过使用私钥通过SSH访问,从而阻止所有基于密码的访问。 虽然这在远程访问节点时提供了额外的安全级别,但应注意防止您自己锁定节点。 如果您已有SSH RSA公钥/私钥对,则可以选择使用该密钥对访问您的节点。 如果您完全不确定,请在开始执行这些步骤之前在Discord内或通过zenhelp提交疑问。
**这是一个特别的大胆的红色警告 - 确保您了解在进行之前您做了什么 - 请在继续之前阅读此警告之下的文本**
**确保在本地计算机上打开第二个终端会话(从步骤10开始),并在执行这些步骤时使用BOTH终端会话登录到您的节点**
注意:此页面仅适用于Windows 7 64位及更高版本的PuTTY终端,对于Mac OS和Linux用户,请参阅:
描述 | 指令 | |
---|---|---|
生成SSH密钥对 - 步骤4 - 7,10 - 13在本地计算机上执行,而不是在您的节点上执行 | ||
1 | 步骤1-13是在下面的步骤15和16中保护SSH的先决条件,目的是生成RSA密钥对以便通过SSH关闭密码访问。 确保您仍然使用第一个会话登录(在第2部分中打开) 在步骤10之后将使用第二终端 | |
在您的节点上 | ||
2 | 创建一个.ssh目录,并在该目录中创建authorized_keys文件 | mkdir -p ~/.ssh; touch ~/.ssh/authorized_keys; chmod 700 ~/.ssh |
3 | 使用nano编辑authorized_keys文件 注意:最小化此终端并继续执行以下步骤 | nano ~/.ssh/authorized_keys |
在您的本地计算机上 | ||
4 | 通过导航到开始菜单中应用程序下的PuTTY(64位)文件夹启动PuTTYgen,或者如果在Windows 10上,单击开始并键入puttygen | |
5 | 注意:如果您已有用于其他节点的现有密钥, 单击“Load”并导航到“.ppk”文件,打开它并输入密码以加载公钥,然后跳到步骤7继续 在“Parameters”下,选择RSA,然后在“Number of bits”字段中输入2048。
| |
6 | 创建一个独特的“Key comment”和一个强大的“密钥密码短语”,然后重新输入“确认密码短语”。 请勿丢失此密码,因此不应与用户密码相同! 单击“Save the key”并将“.ppk”文件存储在安全位置,例如加密的拇指驱动器 | |
7 | 右键单击标记为框中的关键文本: "Public key for pasting into OpenSSH authorized_keys file" 点击 "Select All" 再次右键单击关键文本并选择"Copy" | |
在你的节点上 | ||
8 | 返回步骤3中最小化的PuTTY终端 通过右键单击窗口内的空白区域,将上面复制的公钥粘贴到PuTTY终端中 按Ctrl + X保存并退出,键入y,然后按Enter键 | |
9 | 更新文件的权限 注意:最小化此终端并继续执行以下步骤 保持此终端在此页面的其余部分在后台运行 | chmod 600 ~/.ssh/authorized_keys |
在您的本地计算机上 | ||
10 | 启动第二个终端窗口的PuTTY并在“host name”字段中输入<USER> @ <FQDN>
| |
11 | 加载在步骤10中创建的已保存会话,并将您的私钥加载到会话中
| |
12 | 保存从步骤11开始对会话所做的更改
| |
13 | 输入您在步骤4中创建的密钥的密码,您将注意到它将显示在步骤4中创建的“Key comment” 如果您没有看到“Key comment”,请返回并重新检查您的工作 根据需要多次重复步骤12和13中的登录,以确保您在没有USER密码的情况下登录,而是使用RSA密钥密码。 如果未能完成此步骤,将导致您自己锁定节点。 | |
在你的节点上 | ||
14 | 注意:仅当您已经为节点建立了基于密钥的登录并且测试了您可以通过RSA密码密码(而不是用户密码)进行访问时,继续执行步骤15和16 | |
15 | 编辑sshd_config以保护SSH守护程序 注意:RSA密钥密码仅用于登录节点,所有其他密码提示将需要您的非root用户密码 | 复制并粘贴整个区块 sudo sed -i '/PermitRootLogin/d' /etc/ssh/sshd_config && \ sudo sed -i '/PasswordAuthentication/d' /etc/ssh/sshd_config && \ sudo sed -i '/ChallengeResponseAuthentication/d' /etc/ssh/sshd_config && \ echo -e "PermitRootLogin no\nPasswordAuthentication no\nChallengeResponseAuthentication no" | sudo tee -a /etc/ssh/sshd_config |
16 | 使用新配置重新启动SSH | sudo systemctl restart sshd |