CentOS作为一款广泛使用的企业级Linux发行版,其系统登录是每一位管理员和用户接触系统的第一步,也是保障系统安全的第一道防线,掌握其登录方式、理解其背后的机制,对于高效、安全地管理服务器至关重要。
本地控制台登录
当您直接在服务器的物理键盘前进行操作时,通常会使用本地控制台登录,在系统启动完成后,如果未安装图形界面或默认进入文本模式,您会看到一个类似以下的登录提示:
CentOS Linux 8 (Core)
Kernel 5.4.196-1.el8.x86_64 on an x86_64
localhost login:
您需要输入已创建的用户名,然后按下回车键,系统会紧接着提示输入密码:
Password:
出于安全考虑,您在输入密码时,屏幕上不会显示任何字符(没有星号或圆点),这是正常现象,输入完成后,再次按下回车,如果用户名和密码均正确,系统将验证通过,并显示欢迎信息(Message of the Day, MOTD),最后进入用户的Shell环境,通常是一个命令行提示符,如 [user@localhost ~]$
。
远程SSH登录
在现代运维实践中,远程管理是常态,SSH(Secure Shell)协议是CentOS系统最常用、最安全的远程登录方式,它通过加密网络通信,确保数据传输的机密性和完整性。
要从另一台Linux或macOS客户端远程登录CentOS服务器,您需要打开终端并使用ssh
命令,其基本语法为:
ssh [用户名]@[服务器IP地址或主机名]
要以用户admin
的身份登录到IP地址为168.1.100
的服务器,命令如下:
ssh admin@192.168.1.100
首次连接时,SSH客户端会提示您确认服务器的指纹,以防止中间人攻击,提示信息如下:
The authenticity of host '192.168.1.100 (192.168.1.100)' can't be established.
ECDSA key fingerprint is SHA256:AbCdEfGhIjKlMnOpQrStUvWxYz.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
输入yes
并回车后,服务器的指纹将被保存到本地的known_hosts
文件中,随后,系统会提示您输入admin
用户的密码,验证成功后即可远程登录。
SSH密钥认证:更安全便捷的选择
虽然密码认证简单直接,但存在被暴力破解的风险,SSH密钥认证提供了一种更安全、更便捷的登录方式,它基于非对称加密技术,使用一对密钥:私钥和公钥。
其工作流程如下表所示:
步骤 | 操作 | 说明 |
---|---|---|
生成密钥对 | 在客户端执行 ssh-keygen -t rsa -b 4096 | 生成一个私钥(id_rsa )和一个公钥(id_rsa.pub ),私钥必须妥善保管在客户端。 |
上传公钥 | 使用 ssh-copy-id user@host 命令 | 该命令会自动将客户端的公钥追加到服务器上对应用户家目录下的 ~/.ssh/authorized_keys 文件中。 |
免密登录 | 再次执行 ssh user@host | SSH客户端会使用私钥与服务器的公钥进行匹配验证,无需输入密码即可直接登录。 |
用户角色与安全实践
在CentOS系统中,用户权限的管理至关重要。root
用户是超级管理员,拥有系统的最高权限,可以执行任何操作,为了安全起见,强烈建议:
- 避免直接使用root登录:无论是本地还是远程,都应优先使用普通用户账户登录。
:当需要执行管理任务时,通过在命令前加上 sudo
来临时获取root权限。sudo yum update
,这不仅可以减少误操作的风险,还能通过/var/log/secure
日志记录所有提权行为,便于审计。
相关问答FAQs
Q1: 如何禁止root用户通过SSH直接登录?
A: 禁止root用户通过SSH远程登录是一项重要的安全加固措施,您可以按照以下步骤操作:
- 使用SSH登录到CentOS服务器。
- 使用具有
sudo
权限的用户编辑SSH的配置文件/etc/ssh/sshd_config
,sudo vi /etc/ssh/sshd_config
。 - 在文件中找到
#PermitRootLogin yes
这一行。 - 删除行首的号(取消注释),并将
yes
修改为no
,即PermitRootLogin no
。 - 保存并退出编辑器。
- 重启SSH服务以使配置生效:
sudo systemctl restart sshd
。
完成后,root用户将无法再通过SSH直接登录,任何人都必须先以普通用户身份登录,然后通过su -
或sudo
切换到root环境。
Q2: 登录后看到的命令行提示符 [user@hostname ~]$
各个部分代表什么意思?
A: 这个提示符由Shell(通常是Bash)生成,包含了非常有用的信息,各部分含义如下:
user
: 当前登录的用户名。hostname
: 当前主机的主机名。- 当前所在的目录,波浪号是用户主目录(Home Directory)的简写,例如对于
user
它代表/home/user
,如果切换到其他目录,这里会显示完整的路径。 - 命令提示符,它表示当前登录的是普通用户,如果显示的是,则表示当前用户是root超级用户,这个符号能非常直观地提醒您当前的权限级别,避免在普通用户下执行需要root权限的命令,或在root用户下误操作。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复