You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Elastic Beanstalk EC2实例SSH无需PEM证书,如何强制启用证书验证

解决Elastic Beanstalk实例强制SSH密钥认证的问题

问题原因

Elastic Beanstalk默认生成的EC2实例中,SSH配置文件/etc/ssh/sshd_config里的PubkeyAuthentication被注释(# PubkeyAuthentication yes),同时可能保留了密码登录权限,导致即使配置了EC2密钥对,仍可不通过证书登录。手动修改仅对当前实例有效,新实例会恢复默认配置。

永久解决方案

通过Elastic Beanstalk的.ebextensions配置文件,让新实例自动应用SSH强制密钥认证的配置,无需手动修改:

  1. 在应用根目录创建.ebextensions文件夹(若不存在)
  2. 在该文件夹内创建配置文件,例如ssh-force-key-auth.config
  3. 将以下配置写入文件:
container_commands:
  01_enable_pubkey_auth:
    command: |
      sed -i 's/#PubkeyAuthentication yes/PubkeyAuthentication yes/' /etc/ssh/sshd_config
  02_disable_password_login:
    command: |
      sed -i 's/PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
  03_restart_ssh_service:
    command: service sshd restart
  • 01命令:启用公钥认证,取消PubkeyAuthentication的注释并设为yes
  • 02命令:禁用密码登录,彻底强制仅通过密钥认证
  • 03命令:重启SSH服务使配置生效
  1. 将包含.ebextensions文件夹的应用代码重新打包部署到Elastic Beanstalk

验证配置

部署完成后,SSH登录实例:

  • 检查/etc/ssh/sshd_config,确认PubkeyAuthentication yes和PasswordAuthentication no已生效
  • 尝试用密码登录,会被拒绝,仅能通过配置的EC2密钥对证书登录

额外说明

你已设置的安全组IP限制(仅允许指定IP访问22端口),与强制密钥认证结合可实现SSH连接的双重防护,进一步提升实例安全性。

内容的提问来源于stack exchange,提问作者cafetera

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 15:14:59