第4部分-保护SSH

SSH提供了一个使用RSA公钥/私钥对的身份验证选项。 这允许您锁定节点,只能通过使用私钥通过SSH访问,从而阻止所有基于密码的访问。 虽然这在远程访问节点时提供了额外的安全级别,但应注意防止您自己锁定节点。 如果您已有SSH RSA公钥/私钥对,则可以选择使用该密钥对访问您的节点。 如果您完全不确定,请在开始执行这些步骤之前在Discord内或通过zenhelp提交疑问。

**这是一个特别的大胆的红色警告 - 确保您了解在进行之前您做了什么 - 请在继续之前阅读此警告之下的文本**


**确保在本地计算机上打开第二个终端会话,并在执行这些步骤时使用BOTH终端会话登录到您的节点**


注意:此页面仅适用于Mac OS和Linux终端,Windows用户可以去下方查看: 


描述指令

生成SSH密钥对 - 步骤1 - 5在本地计算机上执行,而不是在节点上执行

1

步骤1 - 5是在下面的步骤8和9中保护SSH的先决条件,目的是生成RSA密钥对,以便通过SSH关闭密码访问.

确保您仍然使用第一个终端会话登录 (打开第2步)

2

打开第二个终端窗口并检查本地设备上是否存在公钥/私钥对

  • OS X - 按<CMD> + <N>打开新的终端窗口
  • Linux - 打开终端应用程序,或按<CTRL> + <SHIFT> + <N>


如果文件 - id_rsa和id_rsa.pub已经存在(显示在示例输出中),请跳过步骤3.如果它们不存在,或者您看到错误(.ssh:没有此类文件或目录),请继续执行步骤3。


ls -alh ~/.ssh/
Example Output

user@localmachine:~$ ls -alh ~/.ssh/

total 80K

drwxr-xr-x  2 user user 4.0K May 28 13:47 .

drwx------ 19 user user 4.0K Jun  4 23:35 ..

-rw-------  1 user user 1.7K Oct 15  2017 id_rsa

-rw-r--r--  1 user user  394 Oct 15  2017 id_rsa.pub

3

在本地设备上生成ssh密钥对

如果有人提议覆盖现有文件,除非你明白想要这样做,否则不要继续执行第4步!


在提示输入文件名时按Enter键(参见上面的警告),在出现提示时输入强密码


不要丢失这个密码,它不应与用户名与密码一样!


注意:密钥对文件:“id_rsa和id_rsa.pub”存储在OS X上的“/Users/<USER>/.ssh/”和Linux上的“/home/<USER>/.ssh”中


建议在安全的脱机位置备份这些文件,例如加密的拇指驱动器

ssh-keygen -t rsa -b 2048
4

将SSH公钥复制到您的节点,将“zenops”替换为您自己的用户名,将<FQDN>替换为您自己的完全限定域名,删除<bracket>

如果提示继续连接ECDSA指纹,请回答“是”

如果系统提示您安装新密钥,请输入非root用户密码

ssh-copy-id zenops@<FQDN>
5

使用密钥对通过SSH测试对节点的访问,用您自己的用户名替换'zenops',用您自己的完全限定域名替换<FQDN>,删除<bracket>

系统将提示您生成密钥时使用的密码,而不是节点的用户密码

如果在步骤2中已存在密钥对,并且您按照指示跳过了步骤4,则您将使用该密钥的密码,可能来自另一个节点设置。

ssh zenops@<FQDN>
exit
ssh zenops@<FQDN>
6

根据需要多次重复步骤5中的登录,以确保您在没有USER密码的情况下登录,而是使用RSA密钥密码。 如果未能完成此步骤,将导致您自己锁定节点。


在你节点上

7

注意:仅当您已经为节点建立了基于密钥的登录并且测试了您可以通过RSA密码密码(而不是用户密码)访问时,继续执行步骤8和9

8

编辑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
9使用新配置重新启动SSH
sudo systemctl restart sshd

第4步/共11步 - 保护SSH



© 2019 Horizen. All rights reserved.