SSH远程连接云服务器前,你需要完成的准备包括:云服务器基础配置、安全组规则放行、密钥对或密码认证设置、本地SSH客户端安装,以及网络与端口连通性测试。这五步缺一不可,否则即使IP地址正确,也会遇到连接超时或认证失败的报错,下面按操作顺序拆解,每一步都有可直接执行的命令和验证方法。
云服务器购买后的初始配置:重装系统与root密码
拿到云服务器第一件事不是急着连接,而是确认操作系统状态,多数云厂商(简米云、酷番云、华为云)默认安装的镜像可能带有初始密码,或者未开启远程登录服务,建议先登录云厂商的网页控制台,找到实例管理页面。
操作路径:控制台 → 云服务器ECS → 实例列表 → 更多 → 密码/密钥 → 重置实例密码,重置后系统会强制要求重启实例,这一步会清空内存数据,但磁盘数据保留,如果你买的是按量付费实例,重置密码前最好先创建快照,防止误操作导致数据丢失。
行业共识认为,生产环境服务器优先使用密钥对认证而非密码登录,密钥对由一对公钥和私钥组成,公钥存放在服务器~/.ssh/authorized_keys文件中,私钥保存在你的本地电脑,使用密钥登录可以避免暴力破解密码的风险,也能省去每次输入复杂密码的麻烦。
创建密钥对的路径:控制台 → 密钥对 → 创建密钥对 → 选择RSA或ED25519算法 → 下载私钥文件(.pem格式)。私钥文件务必保存到安全目录,例如~/.ssh/,并修改权限为600,否则SSH客户端会拒绝使用。
如果你选择密码登录,建议设置20位以上且混合大小写、数字、特殊字符的密码,云服务器厂商通常有密码强度检测,过短或纯数字密码会直接被拒绝。
安全组与防火墙放行SSH端口:连接超时的最常见原因
很多新手遇到Connection timed out第一反应是IP写错了,实际检查后发现IP正确,问题出在安全组规则未放行,云服务器的安全组相当于虚拟防火墙,默认只放行特定端口,简米云默认开放22端口,但酷番云和华为云的部分新实例可能只开放ICMP和3389(Windows),Linux的22端口需要手动添加。
安全组配置步骤(以简米云为例):
- 进入ECS实例详情页 → 安全组 → 配置规则 → 入方向 → 手动添加
- 协议类型选择
自定义TCP,端口范围填22/22,授权对象填0.0.0/0(表示允许所有IP访问,但更安全的做法是只填你的公网IP)

如果只允许特定IP访问,可以用你当前公网IP/32作为授权对象,查询自己公网IP的方法:在本地命令行执行curl ifconfig.me,或者访问ip.sb网站。
除了云安全组,服务器操作系统内部防火墙也要检查,CentOS/RHEL系使用firewalld,Ubuntu/Debian使用ufw,如果你在网页控制台放行了22端口仍连接失败,登录VNC(网页终端)执行以下命令确认:
# 查看防火墙状态 sudo systemctl status firewalld # 如果开着,永久放行SSH sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --reload
Ubuntu系统可执行:
sudo ufw allow OpenSSH sudo ufw reload
这里有个细节:云厂商的“安全组”和系统内部的“防火墙”是两层独立过滤,两个地方都必须放行22端口才能正常连接,许多用户只配了安全组,忽略了系统防火墙,结果仍然超时。
SSH客户端选择与安装:Windows、macOS、Linux各有顺手方案
准备SSH客户的本质是找一个能发起SSH协议的工具,各操作系统方案如下:
- Windows 10/11用户:系统自带
OpenSSH Client,无需安装,打开命令提示符(cmd)或PowerShell,输入ssh -V验证版本,如果提示找不到命令,到“设置 → 应用 → 可选功能 → 添加可选功能”中安装“OpenSSH客户端”,更进阶的工具是Windows Terminal,可以同时管理多个SSH标签页。 - macOS用户:终端(Terminal)自带了基于BSD的SSH,直接使用即可,部分用户喜欢用
iTerm2搭配oh-my-zsh,但这不是必须。 - Linux用户:绝大多数发行版预装OpenSSH客户端,若没有,用包管理器安装:
sudo apt install openssh-client(Debian系)或sudo yum install openssh-client(RHEL系)。
除了命令行工具,还有一种场景是使用第三方SSH工具管理多台服务器,如果你需要在不同云服务器之间来回切换,或者需要图形化界面查看文件,可以试试Termius或FinalShell这类工具,它们支持保存主机列表、记住密码、隧道转发,但注意,第三方工具的安全性取决于软件本身是否开源,使用闭源工具时最好不要保存云端同步的密码。
网络准备:测试连通性与常用的排查命令
云服务器地域选择影响连接延迟,如果你人在北京,却买了香港或海外的云服务器,SSH连接会因为跨境带宽拥塞而出现明显延迟或频繁断连。

选择地域时优先选离你最近的节点,或者选你的目标用户所在地域,这一条虽然和“准备”关系不大,但属于部署前的决策,建议一并考虑。
正式连接前,先做两步网络测试:
- 测试IP可达性:本地命令行执行
ping 你的服务器公网IP,如果ping不通,检查安全组是否放行了ICMP协议,有些云厂商默认禁ping,但SSH仍然可以连,所以ping不通不代表SSH一定失败。 - 测试端口连通性:使用
telnet或nc命令,Windows下可用Test-NetConnection,PowerShell执行:Test-NetConnection -ComputerName 你的IP -Port 22
如果返回
TcpTestSucceeded : True,说明端口已通,Linux或macOS下执行:nc -vz 你的IP 22
看到
open字样即为成功。
如果22端口不通,重点检查安全组入方向规则和系统防火墙,另一个容易忽略的是云服务器绑定的弹性公网IP状态,如果你使用的是按量付费实例且未绑定弹性IP,实例重启后公网IP可能变化,导致你之前保存的IP失效,解决方案是将公网IP转为弹性公网IP(EIP),绑定后IP固定不变。
首次SSH连接实践:密钥权限与known_hosts确认
准备工作做完后,第一次连接会遇到几个交互提示,提前了解可以避免误操作。
密码登录方式:执行ssh root@你的IP,系统提示输入密码时,输入你重置的服务器root密码(输入时不显示字符是正常现象),如果密码有特殊字符,注意转义问题,或者用单引号包裹整个密码,但不推荐在命令行明文输入密码,建议改用密钥。
密钥登录方式:假设私钥文件名为my-key.pem,先执行chmod 400 my-key.pem修改权限,然后连接:
ssh -i ~/.ssh/my-key.pem root@你的IP
连接时第一次会提示确认远端主机指纹:
The authenticity of host 'xxx (IP)' can't be established.
RSA key fingerprint is SHA256:xxxx.
Are you sure you want to continue connecting (yes/no)?
输入yes回车即可,这个指纹是服务器公钥的哈希值,用于防止中间人攻击,确认后,系统会将服务器信息写入~/.ssh/known_hosts文件,下次不再提示。
如果你的服务器系统用户不是root,而是ubuntu或centos这类默认用户,需要将用户名替换,例如华为云的Ubuntu镜像默认用户是

ubuntu,简米云的CentOS默认用户是root,酷番云Linux默认用户可能是lighthouse或root,具体查看云厂商的镜像说明。
SSH连接超时的进阶排查场景
实际工作中,最多的问题是“准备都做好了还是连不上”,这里整理针对不同场景的排查思路:
本地网络禁用了22端口出站,部分公司办公网络会限制非标准端口出站,你可以用手机热点测试是否本地限制。
服务器负载过高导致SSH服务无响应,如果服务器CPU或内存打满,SSH握手会超时,通过云厂商VNC登录,执行top查看进程,杀掉高占用进程后恢复正常。
SSH服务未启动,系统安装时未安装openssh-server,或者服务被误停,VNC登录后执行:
sudo systemctl start sshd sudo systemctl enable sshd
安全组规则互相冲突,有时你添加了允许规则,但同时存在一条拒绝规则,优先级较高的拒绝规则会覆盖允许规则,在安全组规则列表中,检查是否有优先级更高的拒绝项。
问答环节:SSH远程连接云服务器需要提前做好哪些准备的三个高频问题
SSH连接云服务器时,密码正确却提示Permission denied,怎么办?
先确认登录用户名是否和服务器中的用户一致。Permission denied (publickey,password)通常表示用户名或密码错误,或者服务器禁用了密码认证,如果你是刚重置密码,重启实例后新密码才会生效,另外检查/etc/ssh/sshd_config中PasswordAuthentication参数是否为yes,修改后执行sudo systemctl restart sshd。
使用本地SSH工具连接云服务器,私钥文件放在哪里比较安全?
Windows下推荐放在C:Users你的用户名.ssh目录,并在文件属性中设置“安全”选项卡,仅允许当前用户读取,macOS和Linux放在~/.ssh/目录,权限设为600,不要将私钥放入云盘同步文件夹(如坚果云或iCloud),以免泄露。
云服务器换IP后SSH连接报错“REMOTE HOST IDENTIFICATION HAS CHANGED”,怎么解决?
这是因为之前连接过的IP在known_hosts中存有旧指纹,新服务器IP相同但公钥不同,执行ssh-keygen -R 你的IP清除旧记录,然后重新连接,若你确认是合法更换系统,也可以用ssh -o StrictHostKeyChecking=no临时跳过,但不推荐在陌生网络环境使用。