使用AWS re:Post即您表示您同意 AWS re:Post 使用条款

如何移除 Amazon EC2 Linux 实例上的 SSH 密码以满足安全要求?

2 分钟阅读
0

我想删除我的 Amazon Elastic Compute Cloud (Amazon EC2) Linux 实例上的特定的 SSH (Secure Shell) 密码以满足安全要求。

简短描述

要在您的 Amazon EC2 Linux 实例上维护安全的环境,请删除不安全的 SSH 密码。然后,将 SSH 配置为仅使用加密算法。

解决方法

**先决条件:**确定您的系统是否支持加密策略。Amazon Linux 2023 实例使用加密策略功能来管理加密设置。有关支持加密策略的发行版的更多信息,请参阅 Ubuntu 网站上的 (8) update-crypto-policies,或红帽企业 Linux (RHEL) 网站上的系统级加密策略

要检查您的系统是否支持加密策略,请使用 SSHAmazon EC2 Instance Connect会话管理器(AWS Systems Manager 的一项功能)连接到您的实例。然后,运行以下命令:

[user@localhost] # update-crypto-policies --show

如果您得到的输出结果类似于以下示例,则说明您的系统不支持加密策略:

update-crypto-policies: command not found

如果您的系统支持加密策略,则您得到的输出结果就是以下其中的一种:

LEGACY
DEFAULT
FUTURE
FIPS

手动删除 SSH 密码

如果您的 Linux 系统不支持加密策略,请修改 sshd_config 文件以手动删除 SSH 密码。

要修改 sshd\ _config 文件,请完成以下步骤:

  1. 从该实例创建亚马逊机器映像(AMI)Amazon Elastic Block Store (Amazon EBS) 快照作为备份

  2. 使用 SSHEC2 Instance Connect会话管理器登录实例。

  3. 要切换到根用户,请运行以下命令:

     [user@localhost] # sudo -i
  4. 要查找在系统上激活的密码,请运行以下命令:

    [root@localhost] # sshd -T | grep 'ciphers'
  5. 记下输出中的列表,然后删除不安全的密码。

  6. 要导航到 /etc/ssh/ 目录,请运行以下命令:

    [root@localhost] # cd /etc/ssh/
  7. 要创建 sshd\ _config 文件的备份,请运行以下命令:

    [root@localhost] # cp sshd_config sshd_config.bak
  8. 要在文本编辑器中打开 sshd\ _config 文件,请运行以下命令:

    [root@localhost] # vi sshd_config
  9. 检查该文件是否包含与以下内容类似的密码部分:

    ciphers chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,aes128-cbc,aes192-cbc,aes256-cbc,blowfish-cbc,cast128-cbc,3des-cbc
  10. 如果文件中包含密码部分,则对其进行编辑以删除不安全的密码。如果没有密码部分,则将密码列表添加到文件末尾。

  11. 保存文件并退出。

  12. 要应用更改,请运行以下命令以重新启动 SSHD 进程:

[root@localhost] # service sshd restart
  1. 要检查更新的密码列表中是否已应用更改,请运行以下命令:
[root@localhost] # sshd -T | grep 'ciphers'

移除不安全的 Kex 算法

要删除不安全的密钥交换 (Kex) 算法,请完成以下步骤:

  1. 从该实例创建亚马逊机器映像(AMI)Amazon EBS 快照作为备份

  2. 使用 SSHEC2 Instance Connect会话管理器登录实例。

  3. 要查找当前激活的 Kex 算法,请运行以下命令:

    [root@localhost] # sshd -T | grep 'kex'
  4. 要查找在系统上激活的密码,请运行以下命令:

    [root@localhost] # sshd -T | grep 'ciphers'
  5. 记下输出中的列表,然后删除不安全的密码。

  6. 要导航到 /etc/ssh/ 目录,请运行以下命令:

    [root@localhost] # cd /etc/ssh/
  7. 要创建 sshd\ _config 文件的备份,请运行以下命令:

    [root@localhost] # cp sshd_config sshd_config.bak
  8. 从以 KexAlgorithms 开头的行中删除不安全的算法。

  9. 检查该文件是否包含与以下内容类似的密码部分:

    ciphers chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,aes128-cbc,aes192-cbc,aes256-cbc,blowfish-cbc,cast128-cbc,3des-cbc
  10. 如果文件中包含密码部分,则对其进行编辑以删除不安全的密码。如果没有密码部分,则将密码列表添加到文件末尾。

  11. 保存文件并退出。

  12. 要检查是否已应用更改,请运行以下命令:

[root@localhost] # sshd -T | grep 'kex'

使用加密策略删除密码

如果您的系统支持加密策略并且您使用先前生成的配置文件,请完成以下步骤:

  1. 要查看您的发行版中可用的加密配置文件,请运行以下命令:

    [user@localhost] # ls /usr/share/crypto-policies/policies
  2. 要更改系统的策略设置,请运行以下命令:

    [user@localhost] # sudo update-crypto-policies --set POLICY_NAME

    **注意:**将 POLICY\ _NAME 替换为您的策略名称,例如 FUTURE

  3. 运行以下命令重启系统以使新策略生效:

    [user@localhost] # sudo reboot
  4. 运行以下命令检查新策略是否已激活:

    [user@localhost] # sudo update-crypto-policies --show

如果先前生成的策略不符合您的安全要求,则为加密策略创建自定义策略。

要创建自定义策略,请完成以下步骤:

  1. 复制策略:

    [user@localhost] # sudo cp /usr/share/crypto-policies/policies/DEFAULT.pol /etc/crypto-policies/policies/POLICY_NAME.pol
  2. 在文本编辑器中编辑新的策略文件并删除不希望系统使用的密码:

    [user@localhost] # sudo vi /etc/crypto-policies/policies/POLICY_NAME.pol
  3. 保存文件并退出。

  4. 运行以下命令更新系统的策略设置:

    [user@localhost] # sudo update-crypto-policies --set POLICY_NAME
  5. 运行以下命令重启系统以使新策略生效:

    [user@localhost] # sudo reboot
  6. 运行以下命令检查新策略是否已激活:

    [user@localhost] # sudo update-crypto-policies --show

相关信息

默认 SSH 服务器配置

在 AL2023 上启用 FIPS 模式

AWS 官方
AWS 官方已更新 2 个月前