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

如何在Terraform中为AWS安全组配置非22端口的SSH访问?

问题修复方案

1. 修正安全组规则的端口配置

你的错误核心在于aws_security_group_rule.inbound_ssh中的端口范围设置无效:from_port的值(28)大于to_port的值(22),AWS安全组不允许这种逻辑错误的端口范围定义,直接导致规则创建失败。

要配置单个非22端口(比如28)的SSH访问,需保证from_port和to_port的值一致,都设置为目标端口号。修正后的规则代码如下:

resource "aws_security_group_rule" "inbound_ssh" {
    from_port = 28
    protocol = "TCP"
    security_group_id = aws_security_group.ws_sg.id
    to_port = 28  # 与from_port保持一致,定义单个端口
    type = "ingress"
    cidr_blocks = [ "0.0.0.0/0" ]
}

2. 同步修改EC2实例的SSH服务配置

安全组开端口只是网络层面的放行,你还需要修改目标EC2实例上的SSH服务监听端口:

  • 登录EC2实例,编辑/etc/ssh/sshd_config文件,将Port 22改为Port 28
  • 重启SSH服务(Ubuntu用sudo systemctl restart sshd,CentOS用sudo service sshd restart)
  • 确认实例本地防火墙(如iptables)未限制28端口的入站访问

关于AWS免费账户的疑问

AWS免费账户不会限制安全组的端口配置,免费套餐的限制仅针对资源使用额度(比如每月免费t2.micro实例时长、EBS存储容量等),和安全组规则的端口设置完全无关,你的错误与免费账户没有关系。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 18:31:06