在管理和操作 CentOS 服务器时,”打开登陆”是每一个系统管理员和用户接触系统的第一步,这个看似简单的动作,实际上涵盖了多种场景和配置选项,从物理机的直接控制台操作,到通过网络进行的远程安全连接,理解这些不同的登录方式及其背后的原理,是高效、安全使用 CentOS 系统的基石,本文将深入探讨在 CentOS 系统中实现登录的各种方法、相关配置以及常见问题的解决方案。

本地控制台登录:最直接的方式
当您直接坐在安装了 CentOS 的物理服务器前,或者通过虚拟化平台的控制窗口访问虚拟机时,您所进行的就是本地控制台登录,这是最原始、最直接的交互方式,通常在系统初次安装、进行重大维护或网络出现问题时使用。
文本模式(命令行界面 – CLI)
对于大多数服务器版本的 CentOS,默认启动后进入的是无图形界面的命令行模式,登录过程非常直观:
系统启动完成后,屏幕上会显示一系列内核加载信息,最后定格在类似以下的提示符:
CentOS Linux 9 (Core) Kernel 5.14.0-427.16.1.el9_4.x86_64 on an x86_64 localhost login:在
login:后输入您的用户名(root或一个普通用户),然后按回车键。系统会提示
Password:,在此处输入您的密码。出于安全考虑,您输入的密码不会在屏幕上显示任何字符(包括星号),这完全是正常的。输入密码并按回车后,如果凭据正确,您将成功登录,并看到命令行提示符,
[root@localhost ~]#,这表示您已经获得了对系统的控制权。
图形模式(图形用户界面 – GUI)
如果您在安装 CentOS 时选择了“桌面”选项,或者后续手动安装了图形界面(如 GNOME),系统默认会启动到图形登录界面。
- 系统启动后,您会看到一个欢迎界面,通常列出了可用的用户账户。
- 点击您的用户头像,系统会弹出一个密码输入框。
- 输入密码并按回车或点击“登录”按钮。
- 验证通过后,系统将加载桌面环境,您可以通过鼠标和窗口与系统进行交互。
下表简要对比了两种本地登录方式的特点:
| 特性 | 文本模式 (CLI) | 图形模式 (GUI) |
|---|---|---|
| 资源消耗 | 极低,适合服务器 | 较高,占用更多内存和CPU |
| 适用场景 | 服务器、核心管理、嵌入式设备 | 工作站、开发、桌面应用 |
| 操作效率 | 对于命令行任务极高 | 对于图形化任务直观友好 |
| 网络依赖 | 无 | 无 |
| 安全性 | 暴露的攻击面更小 | 相对复杂,潜在漏洞更多 |
远程SSH登录:管理服务器的首选
在现代IT环境中,服务器通常放置在数据中心,管理员无法进行物理接触,通过网络进行远程登录成为日常管理的标准操作,SSH(Secure Shell)协议因其加密传输和强大的功能,成为了远程登录 CentOS 的不二之选。
SSH登录的基本步骤
要从另一台 Linux 或 macOS 客户端,或者 Windows(使用 PowerShell、WSL 或 PuTTY)客户端连接到 CentOS 服务器,请遵循以下步骤:
确保 CentOS 服务器已开启 SSH 服务。
openssh-server在安装时已被默认安装并设为开机自启,您可以使用以下命令检查其状态:systemctl status sshd
如果服务未运行,可以使用
sudo systemctl start sshd和sudo systemctl enable sshd来启动并设置开机自启。获取服务器的 IP 地址或主机名,在服务器上使用
ip a命令可以查看其网络配置和 IP 地址。在客户端执行连接命令,打开终端,输入以下格式的命令:
ssh username@server_ip_address
要以
root用户身份登录 IP 地址为168.1.100的服务器,命令为:
ssh root@192.168.1.100
首次连接验证,第一次连接到某台服务器时,SSH 客户端会提示您确认服务器的指纹,以确保您连接的是正确的目标,而非中间人攻击。
The authenticity of host '192.168.1.100 (192.168.1.100)' can't be established. ED25519 key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxx. Are you sure you want to continue connecting (yes/no/[fingerprint])?输入
yes并回车,服务器的指纹将被保存到本地的~/.ssh/known_hosts文件中。输入密码,之后,系统会提示您输入对应用户的密码,输入正确后,即可成功登录。
配置SSH密钥对登录(更安全的选择)
为了进一步提升安全性并实现免密登录,强烈推荐使用 SSH 密钥对认证代替密码认证。
在客户端生成密钥对:
ssh-keygen -t ed25519 -a 100
该命令会在
~/.ssh/目录下生成私钥id_ed25519和公钥id_ed25519.pub。将公钥复制到服务器:
ssh-copy-id username@server_ip_address
此命令会自动将您的公钥追加到服务器上对应用户的
~/.ssh/authorized_keys文件中,并设置正确的文件权限。
完成这两步后,您再次使用 ssh username@server_ip_address 登录时,系统将不再要求输入密码,而是直接使用密钥进行验证。
配置登录行为:定制化你的系统
CentOS 使用 systemd 作为初始化系统,这使得配置系统的默认运行模式(即登录模式)变得非常简单。
设置默认启动目标(GUI vs. CLI)
您可以根据需要,让系统默认启动到图形界面或命令行界面。
查看当前默认目标:
systemctl get-default
输出可能是
graphical.target(图形界面)或multi-user.target(命令行)。设置默认启动到命令行模式:
sudo systemctl set-default multi-user.target
设置默认启动到图形界面模式:

sudo systemctl set-default graphical.target
修改后需要重启系统才能生效。
允许或禁止 root 用户远程 SSH 登录
出于安全考虑,默认情况下,较新版本的 CentOS 可能会禁止 root 用户直接通过 SSH 登录,推荐的做法是使用普通用户登录,然后通过 sudo 提权,如果确实需要开启(不推荐),可以修改 SSH 配置文件。
编辑
/etc/ssh/sshd_config文件:sudo vi /etc/ssh/sshd_config
找到
PermitRootLogin这一行,将其值修改为yes:PermitRootLogin yes如果该行被注释(以 开头),则需要去掉注释。
保存文件后,重启 SSH 服务使配置生效:
sudo systemctl restart sshd
常见登录问题与排查
在登录过程中,可能会遇到各种问题,以下是一些常见问题及其排查思路:
- 密码错误:最常见的问题,请仔细检查大小写、键盘布局,如果忘记密码,可能需要通过单用户模式或救援模式进行重置。
- SSH 连接被拒绝:
- 检查服务器 IP 地址是否正确。
- 检查服务器上的 SSH 服务是否正在运行(
systemctl status sshd)。 - 检查服务器防火墙是否放行了 22 端口(
sudo firewall-cmd --list-all)。
- SSH “Permission denied (publickey)”:当您配置了密钥登录但失败时出现,检查
~/.ssh/目录权限是否为700,authorized_keys文件权限是否为600,以及sshd_config中PubkeyAuthentication是否为yes。
相关问答FAQs
问题1:如何完全禁用某个用户的登录权限,但又不删除其用户目录和文件?
解答: 可以通过修改该用户的 shell 为 /sbin/nologin 来实现,当该用户尝试登录时,系统会显示一条消息并拒绝其访问,执行命令如下(需要 root 或 sudo 权限):
sudo usermod -s /sbin/nologin username
这里的 username 是您想禁用的用户名,这样做的好处是保留了用户的 UID/GID、主目录和所有文件,便于后续恢复或管理其服务进程,但该用户无法再获得交互式登录 shell。
问题2:CentOS 7 和 CentOS Stream 8/9 在登录配置上有什么主要区别?
解答: 核心的登录机制和配置文件在 CentOS 7 和后续的 Stream 版本之间保持了高度的一致性,两者都使用 systemd 管理服务和启动目标,都使用 OpenSSH 作为远程登录工具,且主要的配置文件(如 /etc/ssh/sshd_config)格式和选项也基本相同,主要区别体现在以下几个方面:
- 软件包管理器:CentOS 7 默认使用
yum,而 CentOS Stream 8/9 默认使用dnf(尽管dnf在 7 中也可用,且在 8/9 中yum通常是dnf的一个别名),这在安装与登录相关的软件包(如openssh-server)时命令略有不同。 - 默认防火墙后端:虽然两者都使用
firewalld,但其底层实现和nftables的集成在新版本中更为深入。 - 加密算法和策略:出于安全考虑,CentOS Stream 8/9 默认禁用了一些较旧的、被认为不安全的 SSH 加密算法和密钥交换协议,如果从旧版本的客户端连接,可能会遇到兼容性问题,需要调整客户端或服务器的 SSH 配置。
登录操作的核心体验没有变化,但底层的系统组件和安全策略随着版本的迭代而不断更新和加固。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复