很多开发者和中小团队都会用到阿里云ECS服务器。部署网站、调试接口、维护数据库,几乎都绕不开远程连接。这篇文章用一个团队的经历做线索,说明远程连接阿里云有哪几种方式,SSH 和密码该怎么设,以及连上之后哪些地方容易出问题。

事故是怎么来的
杭州一家做小程序的团队,三名开发分布在不同城市,服务器买在华北2(北京)地域。一开始大家共用同一个 root 密码登录,直到运维人员发现CPU长期占满。排查后确认,是一个暴露在公网、密码又很弱的SSH端口被扫描,服务器里被植入了挖矿程序。远程连接本身没有问题,问题在于入口开着,身份校验却很弱。
连接前先确认三件事
在ECS控制台看一眼实例状态是否为运行中,确认实例已有公网IP或绑定了弹性公网IP,再检查安全组是否放行了对应端口。Linux实例一般用22端口,Windows实例用3389端口。很多“连不上”的问题,其实卡在这一步。
SSH 连接 Linux 实例
macOS和Linux自带终端,直接执行类似 ssh -i ~/.ssh/aliyun_key.pem root@你的公网IP 的命令即可。Windows 10及以上版本自带OpenSSH客户端,在PowerShell里用同样的写法就能连。习惯图形界面的话,Xshell、FinalShell 填入公网IP、端口和密钥文件也可以。
密钥文件下载后要妥善保管,并用 chmod 400 把权限收紧为仅所有者可读。权限太宽时,SSH客户端会直接拒绝使用,报错信息容易让人误以为是服务器的问题。
密码怎么设置
如果实例使用密码登录,创建或重置时设置的密码要符合平台的复杂度要求,也不要和其他平台的密码混用。忘记密码时,可以在控制台使用重置实例密码功能。修改后通常要重启实例才会生效,提前告知使用的同事,免得突然断线。
更稳妥的做法是只用密钥登录,把密码登录关掉。加固部分会再说到这一步。
Windows 实例用远程桌面
Windows实例使用远程桌面协议(RDP)。在本地按 Win+R,输入 mstsc,填入公网IP,再输入管理员账号和密码。连接失败时,先看安全组是否放行了3389,再看账号是否写对。
控制台 Workbench 或 VNC 应急
本地网络环境复杂,或者SSH、远程桌面都连不上时,可以直接从控制台进入Workbench或VNC。它不依赖本地客户端,适合排查故障。但它运行在浏览器里,延迟比本地终端高,长时间写代码或传文件不太顺手,更适合当备用入口。
连接失败怎么查
- 连接超时:先看安全组是否放行了22或3389,再看本地网络是否封锁了该端口。
- Permission denied:多半是密钥不匹配、私钥权限过宽,或用户名写错。很多Ubuntu镜像默认用户通常是 ubuntu,而不是 root。
- 密码一直提示错误:确认服务器是否开启了密码登录。部分镜像默认只允许密钥登录,密码输对也没用。
- 能ping通却登录不了:ping 只能说明网络可达。要查的是SSH服务是否在运行,以及系统防火墙有没有拦截端口。
回到案例:收窄远程入口
那个团队事后做了几项调整,核心思路都是收窄入口:
- 安全组入方向不再对 0.0.0.0/0 开放22或3389,只放行办公网出口IP段。
- 关闭密码登录,全员改用密钥对,在 sshd_config 中把 PasswordAuthentication 设为 no。改之前先保留一个已验证可用的会话,避免把自己锁在外面。
- 修改SSH默认端口,并安装 fail2ban,对多次登录失败的IP自动封禁。
- 需要长期访问的服务器,统一经过堡垒机或云助手管理,不让个人电脑直接暴露在公网上。
- 定期查看登录日志。CentOS 看 /var/log/secure,Ubuntu 看 /var/log/auth.log,异常的失败记录通常都能在这里找到。
这些做法不复杂,但能明显减少被自动扫描和爆破的机会。目的很简单:只让该来的人和IP进来,服务器日常使用照常方便。
远程连接阿里云的步骤其实不多:确认实例和安全组,选对连接方式,设好密码或密钥,再把访问范围收紧到必要的人和IP。入口先管住,后面的开发和运维才踏实。