SSH如何访问只有没有公网IP的云服务器
文章目录
- 方案一:使用一台有公网IP的云服务器作为跳板机(Bastion Host)
- 方案二:使用云服务商的云助手(Cloud Assistant)
- 方案三:使用云服务商的SAS(安全加速器)或堡垒机服务
- 方案四:配置VPN网关或智能接入网关(SAG)
- 方案五:使用SSH端口转发(隧道)
- 总结与建议
当云服务器实例只有私网IP(没有分配公网IP或绑定EIP)时,您无法直接从互联网通过SSH访问它。您需要通过一个“跳板”或“代理”来间接访问。以下是几种常用的解决方案:
方案一:使用一台有公网IP的云服务器作为跳板机(Bastion Host)
这是最常见和推荐的方式。
原理:您先SSH连接到一台具有公网IP的云服务器(跳板机),然后从这台跳板机再SSH连接到您的私网云服务器。
操作步骤:
-
准备跳板机:
- 在同一个VPC网络中,创建或使用一台已有公网IP(或EIP)的ECS实例作为跳板机。
- 确保跳板机和目标私网ECS在同一个安全组或安全组间有互通规则(通常默认同VPC内互通)。
-
配置安全组:
- 跳板机安全组:放行SSH(端口22)的公网访问(来源:您的IP或0.0.0.0/0)。
- 私网ECS安全组:放行SSH(端口22)的访问,来源设置为跳板机的私网IP或跳板机所在安全组。
-
SSH连接流程:
- 在您的本地电脑,使用SSH客户端连接跳板机:
ssh -i your-key.pem root@<跳板机公网IP>
- 登录跳板机后,再从跳板机SSH连接到私网ECS:
ssh -i /path/to/private-key.pem root@<私网ECS的私网IP>
- 在您的本地电脑,使用SSH客户端连接跳板机:
方案二:使用云服务商的云助手(Cloud Assistant)
无需开放SSH端口,通过阿里云控制台或API执行命令。
优点:安全性高,无需暴露SSH端口。
操作步骤:
- 确保云助手Agent已安装:较新版本的公共镜像默认安装。可在ECS控制台“实例详情”页查看“云助手”状态。
- 通过控制台执行命令:
- 进入ECS控制台,找到目标私网ECS实例。
- 点击实例ID进入详情页。
- 在左侧导航栏,选择 运维与监控 > 云助手。
- 点击 发送远程命令。
- 选择命令类型(如
Shell
/PowerShell
),输入要执行的命令(例如df -h
,systemctl status
)。 - 点击 确定,查看执行结果。
- 执行复杂操作:您可以编写脚本,通过云助手上传脚本并执行,实现批量运维。
⚠️ 注意:云助手主要用于执行命令和脚本,不适合进行交互式的SSH会话。
方案三:使用云服务商的SAS(安全加速器)或堡垒机服务
云服务商一般会提供专业的运维安全审计解决方案。
- 云安全中心(SAS) 的“远程连接”功能可以提供一个安全的Web SSH终端。
- 云堡垒机(Bastionhost) 是企业级的运维审计平台,功能更强大,支持多种协议、权限控制和操作审计。
方案四:配置VPN网关或智能接入网关(SAG)
将您的本地网络与云服务VPC打通,使本地电脑如同在VPC内部。
原理:建立IPsec VPN隧道或使用SAG设备,将您的本地网络和云服务VPC连接成一个整体。
操作步骤:
- 在云服务VPC中创建 VPN网关。
- 配置 IPsec连接,将您的本地网络的公网IP和网段与VPC关联。
- 在本地路由器或电脑上配置VPN客户端,连接到云服务VPN网关。
- 连接成功后,您的本地网络可以直接通过私网IP访问ECS:
ssh -i your-key.pem root@<私网ECS的私网IP>
⚠️ 优点:体验最好,如同局域网访问。
⚠️ 缺点:成本较高,配置复杂,适合企业级长期连接。
方案五:使用SSH端口转发(隧道)
如果您有一台能访问私网ECS的中间服务器(如跳板机),可以设置SSH隧道。
本地端口转发示例:
# 在本地执行,将本地的10022端口转发到私网ECS的22端口,通过跳板机中转
ssh -i your-key.pem -L 10022:<私网ECS私网IP>:22 root@<跳板机公网IP># 然后在另一个终端,直接连接本地端口
ssh -p 10022 root@localhost
总结与建议
方案 | 适用场景 | 复杂度 | 安全性 |
---|---|---|---|
跳板机 | 个人用户、开发测试 | ⭐⭐ | ⭐⭐⭐ |
云助手 | 执行命令、脚本、无需交互 | ⭐ | ⭐⭐⭐⭐⭐ |
云堡垒机/SAS | 企业运维、审计要求高 | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
VPN网关 | 本地与云长期互通 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
SSH隧道 | 临时、高级用户 | ⭐⭐⭐ | ⭐⭐⭐⭐ |
对于大多数用户,推荐使用【方案一:跳板机】,简单、有效且成本低。如果只是执行命令,【方案二:云助手】是最快最安全的选择。