第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

  • 单击“生成”并移动光标以生成随机性以创建私钥/公钥对
  • 如果您已经拥有密钥,建议尽快备份密钥,请参阅下面的步骤4中的链接

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>

  • 用您的节点非root用户名替换<USER>,删除<bracket>
  • 用您的节点的完全限定域名替换<FQDN>,删除<bracket>
  • 确保“端口”设置为22,“Connection type”为SSH,“Close window on exit”设置为“Always
  • 在“Saved Sessions”字段中输入节点的名称,然后单击“Save

11

加载在步骤10中创建的已保存会话,并将您的私钥加载到会话中

  • 选择“Saved Sessions”下的会话,然后单击“Load
  • 展开“Connection”和“SSH”并从左侧窗格中的“Category”下选择“AUTH
  • 单击右侧窗格中的“Browse”,然后导航到并打开在步骤4中创建的.ppk文件


12

保存从步骤11开始对会话所做的更改

  • 滚动回左侧窗格的顶部,在“Category”下,选择“Session
  • 确保在“Host Name (or IP address)”下,您有<USER> @ <FQDN>
  • 在右侧的“Saved Sessions”框中,从列表中选择已保存的会话,然后单击“Save
  • 保存会话后,可以单击“Load”,然后单击“Open”以连接到您的节点

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

第4部分a/共11部分 - 保护SSH(Windows系统)



© 2019 Horizen. All rights reserved.