在现代IT基础设施中,服务器的远程管理是日常运维的核心环节,对于广泛使用的Linux发行版CentOS而言,掌握其远程连接方法,是每一位系统管理员和开发者的必备技能,本文将系统性地介绍如何安全、高效地远程连接到CentOS服务器,内容涵盖基础协议、客户端工具、服务器配置以及更为安全的密钥认证方式。

SSH协议简介
远程连接CentOS服务器,最常用、最安全的协议是SSH(Secure Shell),SSH是一种加密网络协议,用于在不安全的网络中安全地进行网络服务,它通过加密技术确保了数据传输的机密性和完整性,有效防止了中间人攻击、数据窃听和篡改,相较于早期的Telnet等明文传输协议,SSH已经成为Linux/Unix系统远程管理的行业标准,其默认工作在TCP的22端口。
连接前的准备工作
在尝试从客户端连接CentOS服务器之前,需要确保以下几个基本条件已经满足:
- 服务器端:一台已安装并启动了CentOS系统的机器。
- 网络连通性:客户端和服务器必须在同一网络中,或者路由可达,客户端需要知道服务器的IP地址或可解析的域名。
- SSH服务运行:CentOS服务器必须安装并运行了SSH服务(即
sshd守护进程)。 - 防火墙规则:服务器的防火墙必须允许来自客户端IP地址的SSH连接(默认为22端口)。
- 认证凭据:需要在服务器上拥有一个有效的用户账户和密码,或者预先配置好的SSH密钥对。
客户端连接实践
根据操作系统的不同,我们使用的SSH客户端工具也略有差异。
在Windows系统上连接
现代Windows系统(Windows 10/11及Windows Server 2019+)已经内置了OpenSSH客户端,可以通过“命令提示符”、“PowerShell”或更现代的“Windows Terminal”直接使用。
连接命令非常简洁:
ssh username@server_ip_address
如果用户名是centos,服务器IP是168.1.100,则命令为:
ssh centos@192.168.1.100
首次连接时,系统会提示服务器的指纹信息,需要输入yes确认并保存,然后输入该用户的密码即可登录。
对于习惯图形界面的用户,PuTTY是一款历史悠久且广受欢迎的免费SSH客户端,其使用方式如下:
- 下载并运行PuTTY。
- 在“Host Name (or IP address)”字段输入服务器的IP或域名。
- “Port”默认为22,“Connection type”选择SSH。
- 点击“Open”按钮,在弹出的窗口中输入用户名和密码即可。
在macOS和Linux系统上连接
macOS和绝大多数Linux发行版(如Ubuntu, Fedora等)都默认内置了OpenSSH客户端,打开“终端”(Terminal)应用,使用与Windows内置客户端完全相同的命令即可:

ssh username@server_ip_address
如果SSH服务运行在非标准端口(例如2222),可以使用-p参数指定端口:
ssh -p 2222 username@server_ip_address
CentOS服务器端配置
确保CentOS服务器能够接受SSH连接,需要进行以下配置。
安装OpenSSH服务器(通常在最小化安装时可能未包含):
sudo yum install openssh-server -y
启动SSH服务并设置其开机自启:
sudo systemctl start sshd sudo systemctl enable sshd
配置防火墙,CentOS 7及以后版本默认使用firewalld,需要永久开放SSH服务并重新加载防火墙规则:
sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --reload
为了增强安全性,建议修改SSH的主配置文件/etc/ssh/sshd_config,使用sudo vi /etc/ssh/sshd_config或sudo nano /etc/ssh/sshd_config进行编辑,一些关键的配置项包括:
Port 22:可以修改为其他高位端口以减少自动化扫描攻击。PermitRootLogin no:强烈建议设置为no,禁止直接以root用户远程登录,而是先登录普通用户再通过sudo提权。PasswordAuthentication yes:如果计划使用密钥认证,可以将其设置为no,彻底禁用密码登录。
修改配置后,务必重启SSH服务使更改生效:
sudo systemctl restart sshd
更安全的连接方式:SSH密钥认证
相比密码认证,SSH密钥认证的安全性更高,它使用非对称加密技术,由一对密钥(公钥和私钥)组成,私钥保留在客户端,公钥则放置在服务器上。
生成SSH密钥对
在客户端机器上(可以是Windows、macOS或Linux)执行以下命令生成密钥对:

ssh-keygen -t rsa -b 4096
-t rsa:指定密钥类型为RSA。-b 4096:指定密钥长度为4096位,更安全。 执行过程中,系统会提示保存密钥文件的位置(默认为~/.ssh/id_rsa),并可以设置一个密码短语(passphrase)以增加一层保护。
将公钥上传至服务器
生成密钥对后,需要将公钥~/.ssh/id_rsa.pub添加到服务器的~/.ssh/authorized_keys文件中,最简单的方法是使用ssh-copy-id命令:
ssh-copy-id username@server_ip_address
该命令会自动处理文件权限和内容追加,是官方推荐的最佳实践,执行后,它会要求输入一次username的密码,之后便可以用密钥无密码登录了。
完成以上步骤后,客户端再次尝试连接服务器,将不再需要输入密码,而是直接使用私钥进行认证,既安全又便捷。
下表小编总结了不同场景下的连接方式对比:
| 平台 | 工具名称 | 特点 | 适用场景 |
|---|---|---|---|
| Windows (10/11+) | Windows Terminal / PowerShell | 内置、原生支持、命令行高效 | 开发者、系统管理员日常操作 |
| Windows | PuTTY | 免费、图形界面、功能丰富 | 习惯GUI操作、需要管理多个会话的用户 |
| macOS / Linux | 内置终端 (Terminal) | 内置、原生支持、与系统无缝集成 | 所有Linux/macOS用户的标准选择 |
相关问答FAQs
问:我应该更改CentOS服务器的默认SSH端口(22)吗?这样做真的安全吗? 答:更改默认SSH端口是一种被称为“安全通过隐蔽”的策略,它主要的好处是减少自动化脚本和机器人对22端口的持续扫描和暴力破解尝试,可以降低服务器的日志噪音和资源消耗,这并不能替代真正的安全措施,一个攻击者只要进行一次端口扫描就能发现你的SSH服务所在的新端口,更改端口应被视为辅助性措施,真正的安全基石在于使用强密码或(更佳的)SSH密钥认证、禁用root登录、配置防火墙以及保持系统更新。
问:如果我忘记了root密码,但我有一个可以SSH登录的普通用户账户(且有sudo权限),我该如何重置root密码?
答:这是一个非常常见的场景,你不需要重启服务器或进入救援模式,只需通过SSH以你的普通用户账户登录,然后使用sudo权限执行passwd命令来修改root用户的密码即可,具体步骤如下:
- 以普通用户身份SSH登录服务器:
ssh your_user@server_ip - 输入以下命令并按提示输入你的用户密码(用于sudo授权):
sudo passwd root
- 系统会提示你输入新的root密码,并再次确认,成功设置后,root密码就被更新了,这个方法利用了
sudo的权限提升机制,是标准且安全的操作流程。