SSH 密钥管理问题:SSH 密钥管理不当,导致安全风险

1. 生成 SSH 密钥对

生成 SSH 密钥对时,确保使用强密码保护私钥。

  • 生成 RSA 密钥对

    ssh-keygen -t rsa -b 4096 -C "your_email@example.com" 
    

    按提示输入保存密钥的文件路径和密码。

  • 生成 Ed25519 密钥对

    ssh-keygen -t ed25519 -C "your_email@example.com" 
    

    按提示输入保存密钥的文件路径和密码。

2. 保护私钥

确保私钥文件的权限设置正确,防止未授权访问。

  • 检查私钥文件权限

    ls -l ~/.ssh/id_rsa
    

    确保文件权限为 600

    chmod 600 ~/.ssh/id_rsa 
    
  • 使用 ssh-agent 管理私钥

    使用 ssh-agent 可以简化私钥的使用,避免每次连接时都需要输入密码。

    • 启动 ssh-agent

      eval "$(ssh-agent -s)"
      
    • 添加私钥到 ssh-agent

      ssh-add ~/.ssh/id_rsa
      

3. 配置公钥认证

将公钥添加到目标主机的 ~/.ssh/authorized_keys 文件中,启用公钥认证。

  • 复制公钥到目标主机

    使用 ssh-copy-id 命令将公钥复制到目标主机:

    ssh-copy-id user@target_host
    
  • 手动添加公钥

    将公钥内容复制到目标主机的 ~/.ssh/authorized_keys 文件中:

    cat ~/.ssh/id_rsa.pub  | ssh user@target_host "cat >> ~/.ssh/authorized_keys"
    

4. 禁用密码认证

为了提高安全性,建议禁用密码认证,仅使用公钥认证。

  • 编辑 SSH 配置文件

    编辑 /etc/ssh/sshd_config 文件,禁用密码认证:

    PasswordAuthentication no
    ChallengeResponseAuthentication no 
    UsePAM no
    
  • 重启 SSH 服务

    重启 SSH 服务以应用更改:

    • Debian/Ubuntu

      sudo systemctl restart ssh 
      
    • CentOS/RHEL

      sudo systemctl restart sshd
      

5. 定期轮换 SSH 密钥

定期轮换 SSH 密钥可以减少长期使用同一密钥带来的安全风险。

  • 生成新的密钥对

    按照上述步骤生成新的 SSH 密钥对。

  • 更新目标主机上的公钥

    将新的公钥添加到目标主机的 ~/.ssh/authorized_keys 文件中,然后删除旧的公钥。

    cat ~/.ssh/new_id_rsa.pub  | ssh user@target_host "cat >> ~/.ssh/authorized_keys"
    ssh user@target_host "sed -i '/old_public_key/d' ~/.ssh/authorized_keys"
    
  • 更新本地私钥

    删除旧的私钥文件,使用新的私钥文件。

    rm ~/.ssh/id_rsa 
    mv ~/.ssh/new_id_rsa ~/.ssh/id_rsa 
© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容