You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

通过AWS安全组限制SSH访问:EC2实例间SSH连通配置咨询

配置方案:安全组精细化设置实现跨实例SSH访问

嘿,我来帮你搞定这个跨实例SSH的配置,同时把SSH权限锁得严严实实的——毕竟开放全网访问SSH实在太不安全了。下面是结合你的现有配置给出的具体操作步骤:

1. 调整实例#2(SSH Only)的SSH入站规则

先把实例#2那条危险的全网SSH规则换掉:

  • 删掉原来的「SSH入站,源0.0.0.0/0」规则
  • 新增一条入站规则:
    • 类型:SSH(端口22)
    • 源:直接选择实例#1的安全组ID(就是Web Server用的那个安全组,比如sg-abc123
    • 描述:可以标注为「Allow SSH from Web Server SG」

这样一来,只有来自实例#1所在安全组的流量才能访问实例#2的SSH端口,彻底杜绝全网的恶意扫描。

2. 确保实例#1(Web Server)的出站规则允许SSH到实例#2

你现在实例#1的SSH出站规则只能让它自己连自己,得调整一下:

  • 要么修改现有「internal_ssh」出站规则的目标,改成实例#2的安全组ID
  • 要么新增一条出站规则:
    • 类型:SSH(端口22)
    • 目标:实例#2的安全组ID
    • 描述:标注为「Allow SSH to SSH Only SG」

这里优先推荐用安全组作为目标,而不是实例的私有IP——毕竟如果实例#2重启更换私有IP,安全组规则不需要手动更新,稳定性更高。

3. 验证配置是否生效

登录到实例#1,用实例#2的私有IP(或者私有DNS)发起SSH连接:

ssh ec2-user@<实例#2私有IP>

如果能成功连接,说明规则配置正确;如果连不上,检查这几点:

  • 确认两台实例确实在同一VPC的公有子网(你已经确认过,这条没问题)
  • 确保实例#1上有访问实例#2的密钥对,并且密钥文件权限设置正确(chmod 600 your-key.pem
  • 检查安全组规则是否正确应用到了对应实例,有没有写错安全组ID

额外安全优化建议

  • 坚持用密钥对登录SSH,绝对不要启用密码登录,这是EC2最基础的安全准则
  • 如果实例#2不需要对外提供任何服务,甚至可以把它迁移到私有子网,只通过实例#1做跳板,安全性会再上一个台阶
  • 可以试试AWS Systems Manager Session Manager来访问实例,不需要开放SSH端口,完全通过AWS控制台操作,安全又方便

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

火山引擎 最新活动