通过SSH访问云服务器,核心就三步:准备好IP地址、用户名和密钥或密码,在本地终端执行ssh 用户名@IP地址命令即可完成登录。这套流程是Linux服务器远程管理的标配,无论你用的是简米云、酷番云还是华为云,操作逻辑完全一致。
SSH连接云服务器的前置准备
获取服务器关键信息
登录云厂商控制台,在实例列表中找到目标服务器,你需要记下三项核心信息:公网IP地址、操作系统类型(如Ubuntu 22.04、CentOS 7.9)和登录凭证,登录凭证有两种形式:创建服务器时设置的root密码,或下载到本地的.pem密钥文件,如果当时没保存密钥文件,只能通过控制台的重置密码功能重新设置。
安全组放行SSH端口
云服务器默认只在防火墙层面开放特定端口,SSH服务监听22端口,你需要在云控制台的安全组规则中确认入方向是否允许TCP 22端口的访问,操作路径通常为:实例详情页 → 安全组 → 配置规则 → 添加入方向规则,来源地址建议填写你当前网络的公网IP,避免对全网开放,多数云厂商的默认安全组已放行22端口,但部分自定义配置可能将其关闭,连接前务必检查。
本地终端环境确认
Windows 10以上版本自带OpenSSH客户端,直接打开PowerShell或CMD即可使用,macOS和Linux系统天然集成SSH命令,无需额外安装,手机端可安装Termius或JuiceSSH这类工具,操作逻辑与电脑端相同。
通过密码方式登录云服务器的实操步骤
Windows系统连接方法
打开PowerShell窗口,输入以下命令后回车:
ssh root@你的公网IP
首次连接会出现确认提示,输入yes继续,随后系统提示输入密码,注意输入密码时屏幕不会显示任何字符,这是正常现象,输完直接回车即可,登录成功后,命令行前缀会变成root@服务器主机名,此时你就可以执行Linux命令了。
macOS和Linux系统连接方法
打开终端应用,执行同样的SSH命令,macOS的Terminal位于“应用程序 → 实用工具”目录下,Linux发行版按Ctrl+Alt+T调出终端,如果你使用的是非root用户,替换命令中的用户名即可,
ssh ubuntu@你的公网IP
简米云的Ubuntu镜像默认用户名为ubuntu,酷番云CentOS镜像默认用户名为root,具体以云厂商提供的远程连接信息为准。
使用密钥对方式验证身份
密钥登录的优势
密钥对采用非对称加密算法,比密码更安全。私钥保存在本地,公钥上传到服务器,登录时通过签名验证身份,这种方式能有效抵御暴力破解攻击,是生产环境推荐的做法,多数云厂商在创建实例时支持“密钥对”登录方式,你可以选择生成新密钥对或使用已有的公钥。
Windows下用密钥文件连接
如果你在创建服务器时选择了密钥对,并下载了.pem文件,Windows用户执行如下命令:
ssh -i C:Users你的用户名Downloads密钥文件名.pem root@你的公网IP
如果你的私钥文件权限过于开放,Windows会提示错误,右键私钥文件 → 属性 → 安全 → 高级,将所有者改为当前用户,然后删除其他所有用户的权限,仅保留自己的完全控制权。
不同系统下私钥权限的调整
在macOS或Linux终端中,如果遇到UNPROTECTED PRIVATE KEY FILE错误,说明私钥权限太宽松,执行以下命令修复:
chmod 400 密钥文件名.pem
这条命令将私钥权限设置为仅文件所有者可读,再次尝试连接命令,即可正常登录。
连接失败的常见原因及排查思路
检查网络连通性
先确认服务器IP能否ping通,本地终端执行ping 你的公网IP,如果超时或丢包,多半是安全组没放行ICMP协议,或服务器处于关机状态,登录云控制台,确认实例运行状态为“运行中”,并检查安全组规则是否放行了ICMP。
确认SSH服务运行状态
即使安全组正确,服务器内部的SSH服务也可能未启动或端口被修改,通过云控制台的“VNC远程连接”功能进入服务器,执行:
systemctl status sshd
如果服务未运行,执行systemctl start sshd启动,并设置开机自启:systemctl enable sshd,如果SSH端口被修改为其他值,连接命令需要加上
-p参数,例如ssh -p 2222 root@你的公网IP。
处理密钥权限和格式问题
使用密钥登录时,windows用户常常遇到格式错误,如果从云厂商下载的是.ppk格式,需要先用PuTTYgen工具转换为.pem格式,反之,如果你在本地用ssh-keygen生成了密钥,需要将公钥追加到服务器的~/.ssh/authorized_keys文件中,这条路径是SSH服务验证身份的唯一依据。
生产环境下的连接优化与安全加固
使用配置文件简化连接命令
频繁输入完整SSH命令很繁琐,你可以在本地创建SSH配置文件来简化操作,在~/.ssh/config文件中添加如下内容:
Host my-server
HostName 你的公网IP
User root
Port 22
IdentityFile ~/.ssh/密钥文件名.pem
保存后,终端输入ssh my-server即可一键连接,无需记忆IP和用户名。
修改默认端口降低被扫描风险
22端口是全网扫描器的主要目标,将SSH端口改为高位随机端口(如22026)能显著降低攻击面,修改服务器上的/etc/ssh/sshd_config文件,找到#Port 22这一行,去掉注释并把数字改掉,保存后重启SSH服务,同步在云安全组中放行新端口,并移除22端口的入方向规则。
禁用密码登录强制使用密钥
为了彻底杜绝暴力破解,可以修改sshd_config文件中PasswordAuthentication的值为no,同时确保PubkeyAuthentication为yes。修改前务必确认密钥能正常登录,否则你将把自己锁在服务器外,行业内将这种配置称为“密钥-only模式”,是云服务器基线安全的重要部分。
配置Fail2ban拦截恶意IP
Fail2ban是Linux上常用的入侵防御工具,它能监控SSH登录日志,在多次失败尝试后自动封禁来源IP,安装命令因发行版而异,Ubuntu使用apt install fail2ban,CentOS使用yum install fail2ban,默认配置会封禁尝试5次以上的IP十分钟,你可以调整/etc/fail2ban/jail.local中的bantime参数延长封禁时间。
常用SSH连接场景对比
| 场景 | 推荐方式 | 连接命令示例 | 适用人群 |
|---|---|---|---|
| 临时管理服务器 | 密码认证 | ssh root@IP |
个人开发者 |
| 生产环境日常运维 | 密钥认证 | ssh -i key.pem user@IP |
运维工程师 |
| 多台服务器管理 | SSH配置文件 | ssh server-alias |
项目负责人 |
| 内网穿透跳板机 | ProxyJump | ssh -J jump@堡垒机IP target@内网IP |
企业团队 |
对于企业级环境,行业共识认为密钥认证配合跳板机架构是较为稳妥的访问管理方案,跳板机集中管理所有SSH入口,配合审计日志,能清晰追踪每个运维人员的操作行为。
SSH连接云服务器常见问题解答
为什么我的SSH连接一直卡在登录界面无法进入?
这种情况通常是网络传输问题或服务器负载过高,检查本地到服务器的网络链路,尝试更换网络环境(如从WiFi切换到手机热点)测试,若服务器CPU或内存接近满载,SSH握手响应会非常慢,需要通过云控制台VNC进入查看top命令的输出,找到占用资源过高的进程并处理。
多次输入错误密码会被锁定多久?
多数Linux发行版默认安装了PAM的pam_faillock模块,连续失败3到5次会锁定账户,锁定时间由/etc/security/faillock.conf中的unlock_time参数决定,常见设置为600秒或900秒,等待几分钟后重试,或通过云控制台VNC登录后执行faillock --user root --reset立即解锁,为防止此类问题,建议使用密钥登录,彻底绕开密码输入环节。
SSH密钥文件丢失后能否通过其他方式找回服务器控制权?
如果私钥文件丢失,最可靠的办法是使用云控制台的“重置实例密码”功能,选择重置为密码登录方式,重启实例后使用新密码连接,部分云厂商支持在控制台直接绑定新的密钥对并替换旧密钥,操作路径为:实例详情 → 更多操作 → 重置实例 → 重置密钥,重置后服务器仍会保留原系统的数据和配置,仅变更登录凭证。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/701340.html





