在当今的云计算和分布式系统中,CentOS 作为一款开源的 Linux 操作系统,因其稳定性和安全性被广泛用于服务器搭建,SSH(Secure Shell)是一种网络协议,用于计算机之间的安全通信,允许用户通过加密的方式远程登录到服务器,本文将详细介绍如何在 CentOS 上允许 SSH 登录,并探讨相关的配置和注意事项。

SSH 基础知识
SSH 是一种基于客户端-服务器架构的协议,它通过在网络中创建一个安全的加密通道来实现远程登录和管理服务器,SSH 的优势在于它提供了强大的安全性和多种加密算法,可以有效防止未授权的访问和数据泄露。
允许 SSH 登录的步骤
安装 SSH 服务
确保您的 CentOS 系统上已经安装了 SSH 服务,大多数 CentOS 发行版默认已经安装了 SSH,如果没有,可以使用以下命令进行安装:
sudo yum install openssh-server
配置 SSH 服务
安装完成后,可以通过以下命令启动 SSH 服务,并设置为开机自启:
sudo systemctl start sshd sudo systemctl enable sshd
编辑 SSH 配置文件
SSH 的配置文件位于 /etc/ssh/ 目录下,主要配置文件为 sshd_config,使用以下命令编辑该文件:
sudo nano /etc/ssh/sshd_config
以下是一些关键的配置选项:

PermitRootLogin: 设置为yes允许 root 用户通过 SSH 登录。PasswordAuthentication: 设置为yes允许使用密码认证。PermitEmptyPasswords: 设置为no禁止空密码登录。AllowUsers或DenyUsers: 用于指定允许或拒绝登录的用户列表。
重启 SSH 服务
完成配置后,重启 SSH 服务以应用更改:
sudo systemctl restart sshd
注意事项
- 在生产环境中,建议不要使用
root用户进行 SSH 登录,而是创建一个具有足够权限的普通用户。 - 为了提高安全性,建议使用 SSH 密钥对进行认证,而不是密码认证。
- 定期更新 SSH 配置文件,以修复已知的安全漏洞。
SSH 配置示例
以下是一个 SSH 配置文件的示例:
# 允许 root 用户登录 PermitRootLogin yes # 允许密码认证 PasswordAuthentication yes # 禁止空密码登录 PermitEmptyPasswords no # 允许指定用户登录 AllowUsers username # 禁止指定用户登录 DenyUsers denied_user
FAQs
Q1:为什么我的 SSH 服务无法启动?
A1: 可能的原因包括 SSH 服务未安装、服务配置错误或系统防火墙阻止了 SSH 端口(默认为 22),您可以检查 SSH 服务是否安装,以及查看防火墙规则是否允许 SSH 端口通信。
Q2:如何使用 SSH 密钥对进行认证?

A2: 使用 SSH 密钥对进行认证的步骤如下:
- 在客户端生成一对 SSH 密钥(公钥和私钥)。
- 将公钥复制到服务器的
~/.ssh/authorized_keys文件中。 - 在服务器上配置 SSH 配置文件,禁用密码认证并启用密钥认证。
通过以上步骤,您可以在 CentOS 上成功允许 SSH 登录,并确保服务器的安全性。
