服务器与大带宽专家 · 持牌IDC/CDN/ISP服务商
简米科技官网JIANMI TECH
资讯 2026-11-07 简米科技 4,800 字 12 分钟阅读

服务器能用SSH登录吗?SSH登录服务器需要哪些配置步骤?

导读服务器当然能用SSH登录,前提是SSH服务已开启、防火墙放行22端口、你有正确的账号或密钥——配置步骤其实就是围绕这三件事展开的,很多初次接触云服务器的朋友,问出这个问题时往往已经卡在“连接超时”或“认证失败”的报错界面上了,SSH是Linux服务器的标配远程管理协议,Windows Server也支持,它本质……

服务器当然能用SSH登录,前提是SSH服务已开启、防火墙放行22端口、你有正确的账号或密钥配置步骤其实就是围绕这三件事展开的。

很多初次接触云服务器的朋友,问出这个问题时往往已经卡在“连接超时”或“认证失败”的报错界面上了,SSH是Linux服务器的标配远程管理协议,Windows Server也支持,它本质上是给管理员开的一扇安全门,这门怎么开、怎么进、进去后如何加固,下面按实际运维顺序拆开讲清楚。

服务器SSH登录的底层逻辑:先搞懂连接三要素

SSH登录不是玄学,它依赖三个硬性条件:服务端在监听、网络路径通、认证凭据有效,任何一个环节缺失,登录必然失败。

SSH服务默认开启吗

多数Linux发行版默认安装并启动了OpenSSH服务,但云服务器镜像是个例外,你买到的云主机,尤其是通过控制台重置过系统的,SSH服务大概率是开着的,因为云厂商的“一键登录”功能依赖它,但部分最小化安装的镜像,或自己用CentOS/Ubuntu安装包部署的系统,可能只装了基础组件,没装openssh-server。

验证服务状态用这条命令:

systemctl status sshd  # 或 systemctl status ssh

看到绿色的“active (running)”就说明服务正常,如果显示“inactive”或“failed”,需要先启动并设置开机自启:

systemctl start sshd
systemctl enable sshd

网络路径通:端口、防火墙、安全组三关都要过

这是酷番云ssh登录失败案例中占比最高的一类问题,本地访问远端服务器,数据包要过三层关卡:

  • 服务器内部防火墙:Linux的firewalld或iptables,Ubuntu可能是ufw
  • 云平台安全组:这是云服务器特有的网络访问控制层,优先级高于系统防火墙
  • 本地网络环境:公司网络封禁22端口、运营商屏蔽海外IP等情况

检查顺序建议从外到内:先看安全组,再看系统防火墙,最后测网络连通性。

认证凭据:密码和密钥,二选一

密码登录最直观,但高强度密码难记,密钥登录更安全,用公钥加密、私钥解密,私钥文件保存在你本地电脑。行业共识认为,生产环境强烈建议禁用密码登录、只保留密钥认证,这条原则在各大云厂商的安全基线文档里都有体现。

ssh登录很慢怎么解决:典型卡顿场景排查

登录时输入密码后要等十几秒才进入命令行,或者连接建立阶段就卡住这个问题困扰着相当一部分运维新手。大多数慢登录不是网络慢,而是SSH服务端的DNS反向解析在作怪。

密码输入后才卡住

这种情况十有八九是sshd_config里的UseDNS参数默认开启导致的,服务器收到客户端的SSH请求后,会尝试对客户端IP做反解析,如果DNS没有配置PTR记录,就要等超时时间耗尽才继续下一步。

修改/etc/ssh/sshd_config,把这两项设置成:

UseDNS no
GSSAPIAuthentication no

保存后重启sshd服务。这个操作能解决大多数慢登录问题,效果立竿见影。

连接建立阶段就卡住

如果还没看到密码提示就卡顿,问题多半出在网络链路上,可以分段测试:

telnet 服务器IP 22    # 测试端口连通性
ping 服务器IP         # 测试ICMP延迟

ping通则网络通,但ping不通不代表SSH连不上部分云厂商安全组默认禁PING,此时可以用nc -vz 服务器IP 22做TCP层测试,如果TCP测试也超时,九成是安全组或防火墙没放行。

密码复杂度影响登录速度吗

这里有认知误区。密码本身不影响登录速度,SSH认证失败后服务器端会有延迟机制,连续输错密码会越等越久,这是防暴力破解的正常策略,如果你输对了密码还要等几秒,请优先检查UseDNS配置。

酷番云ssh登录失败的常见原因与排查路径

酷番云在国内云服务器市场占有率相当高,其控制台的网络配置与简米云略有差异,以酷番云为例,酷番云ssh登录失败多半是安全组规则和登录方式不一致导致的,以下是按出现频率排序的排查清单:

安全组规则没放行

酷番云安全组默认只放通22端口的部分来源IP,如果你在创建安全组时选择了“放通全部端口”,那就没问题;但如果你自定义了规则,记得检查:

  • 入站规则是否有TCP:22的放行条目
  • 来源IP是否设置为0.0.0/0(允许所有IP)或你的固定公网IP
  • 协议是否误写成了UDP(SSH走的是TCP)

修改安全组后立即生效,无需重启服务器。

登录用户搞错了

云服务器默认登录用户不是root,酷番云Ubuntu镜像默认用户是ubuntu,CentOS镜像默认是root或centos(取决于版本),Debian是admin,用错用户名会让服务器直接拒绝认证,且错误提示仅显示“Permission denied, please try again”,没有明确告诉你用户名错了。

登录时可以在控制台的“实例详情”页面确认默认用户名。

私钥文件权限问题

使用密钥登录时,私钥文件权限过大会被OpenSSH拒绝加载,Linux和macOS下私钥文件需要设置成600权限:

chmod 600 ~/.ssh/id_rsa

Windows的PowerShell下可以右键属性安全高级,确保只有当前用户有读取权限。这是密钥登录最常见的本地配置错误。

云服务器ssh登录密码忘记了怎么办

如果你忘了密码或密钥丢了,酷番云控制台提供“重置密码”功能,入口在实例的“更多”“密码/密钥”“重置密码”,重置后会让你设置新密码,然后需要重启实例生效,同时控制台还提供“一键登录”或“OrcaTerm”网页终端,即使本地SSH完全连不上,也能通过网页进入服务器排查。

把linux服务器ssh配置做成密钥登录:完整实操

前面提到了密钥登录更安全,这里给出从生成密钥到禁用密码的完整步骤。密钥认证的核心价值在于防止暴力破解和中间人攻击,对于公网暴露的服务器来说,这是性价比最高的安全措施。

第一步:本地生成密钥对

在自己电脑上执行(Windows的PowerShell或macOS/Linux的终端都行):

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

4096位是当前推荐的安全强度,2048位虽然仍被广泛支持,但GitHub已在2026年8月停止了对RSA-SHA1签名密钥的支持,这说明加密强度升级是平台侧的明确趋势,一路回车,除非你想设置密钥密码(passphrase),那会提高安全性但每次登录都要输入一次。

第二步:上传公钥到服务器

最简单的办法是使用ssh-copy-id命令:

ssh-copy-id -i ~/.ssh/id_rsa.pub 用户名@服务器IP

该命令会执行两次登录:第一次验证密码并创建~/.ssh目录,第二次写入authorized_keys文件并设置好权限,没有这个命令的Windows用户,可以手动将公钥内容追加到服务器的~/.ssh/authorized_keys文件中。

第三步:验证并禁用密码登录

先不关密码,用密钥方式登录一次:

ssh -i ~/.ssh/id_rsa 用户名@服务器IP

确认能正常进入系统后,再修改/etc/ssh/sshd_config:

PasswordAuthentication no
PubkeyAuthentication yes

重启sshd生效。此时密码登录已被禁用,请务必确认密钥文件安全备份后再操作,这一步执行完,你的linux服务器ssh配置才算走完了安全闭环。

密码登录与密钥登录的取舍对比

对比维度 密码登录 密钥登录
便利性 任意终端可直接登录 需要携带私钥文件
抗暴力破解 依赖密码强度,弱密码极易被攻破 私钥4096位复杂度,破解难度极大
传输安全 密码验证过程中不传输真实密码 公钥加密挑战值,私钥本地解密
多设备管理 记住密码即可 每台设备需单独配置密钥

从表格可以看出,密钥登录在安全性上全面压制密码登录,唯一牺牲的是一点点便利性,不过对于脚本自动化、配置管理工具(如Ansible)密钥认证反而是必要条件,免去了交互输密码的环节。

服务器SSH端口的安全加固:进阶配置

登录问题解决后,需要关注端口层面的安全防护,默认22端口是全网扫描器的重点目标,改端口能让你的服务器在自动化攻击面前低调很多。

修改监听端口

编辑/etc/ssh/sshd_config,找到#Port 22,取消注释并修改:

Port 22222

保存后重启sshd,然后立即用新端口测试登录:

ssh -p 22222 用户名@服务器IP

确认新端口能登录后,再在安全组中删除22端口的放行规则,只保留新端口。切换端口时务必保持当前SSH会话不退出,否则配置错误会导致你把自己关在门外。

限制可登录用户

对多用户系统,可以限定只有特定用户能通过SSH登录:

AllowUsers webadmin opsadmin

这行配置意为仅webadmin和opsadmin两个用户可以从远程登录,其他用户即使是系统内的合法账号也无法通过SSH接入。

登录失败惩罚策略

安装fail2ban类工具是目前通用的防爆破手段,它通过监控认证日志,对连续失败的IP地址实施临时封禁:

yum install fail2ban    # CentOS系
apt install fail2ban    # Debian/Ubuntu系

安装后默认配置即可生效,它会自动屏蔽短时间内多次认证失败的IP。国内服务器的暴力破解攻击几乎100%来自自动化扫描程序,这类工具能挡住绝大多数非定向攻击。

服务器SSH登录常见问题

Q1:服务器SSH连接总是提示“Connection refused”是怎么回事?

这个提示说明TCP连接已到达目标,但目标端口没有服务在监听,先确认sshd服务是否运行,再检查sshd监听的是不是22端口(或你配置的端口),命令:ss -lntp | grep ssh,如果服务在跑、端口也对,则检查firewalld是否允许该端口流量通过。

Q2:修改SSH端口后连不上了,如何恢复?

如果你还保留着云控制台的网页终端(如酷番云OrcaTerm、简米云Workbench),直接进去把sshd_config改回22端口并重启sshd即可,如果没有保留网页终端,只能在控制台的“重置密码”后用VNC方式登录,或者提交工单让云厂商协助,这也是为什么强调修改端口时务必要保留一个已建立的会话作为退路。

Q3:如何禁用服务器SSH的root直接登录?

root账号拥有最高权限,被攻破后的破坏力远大于普通用户,修改sshd_config中的PermitRootLogin no,然后用普通用户登录,需要提权时再用sudo,这样即使密码泄露,攻击者拿到的也仅是一个受限账号,系统核心文件的破坏路径被切断了,禁用root登录后,之前用root配置的密钥登录也会全部失效,需要先用普通用户登录,再通过sudo执行管理操作。

SSH登录服务器没有想象中复杂,按着服务、端口、认证三件事逐项检查,多数问题都能在几分钟内定位根因,记住一点:远程管理服务器,安全配置永远比功能开启更值得花时间。

分享本文
本文为 简米科技官网 原创,已由运维技术专家审核。转载请注明来源:原文链接
售前咨询 服务热线 售后 邮箱