CentOS 7 的 OpenSSH:配置与管理指南

简介
OpenSSH 是一款安全壳层协议(Secure Shell)的实现,主要用于远程登录和文件传输,在 CentOS 7 操作系统中,OpenSSH 是默认安装的,它提供了强大的安全功能和丰富的命令行工具,本文将详细介绍 CentOS 7 的 OpenSSH 配置与管理方法。
OpenSSH 的基本配置
启用 SSH 服务
在 CentOS 7 中,SSH 服务通常以守护进程的形式运行,要启用 SSH 服务,可以使用以下命令:
sudo systemctl start sshd sudo systemctl enable sshd
修改 SSH 配置文件
SSH 配置文件位于 /etc/ssh/ 目录下,主要文件包括 sshd_config,以下是一些常用的配置选项:
| 配置选项 | 说明 |
|---|---|
Port | SSH 服务监听的端口号,默认为 22 |
PermitRootLogin | 是否允许 root 用户直接登录,建议设置为 no |
PasswordAuthentication | 是否允许密码认证,建议设置为 no |
PermitEmptyPasswords | 是否允许空密码登录,建议设置为 no |
AllowUsers | 允许登录的用户列表 |
DenyUsers | 禁止登录的用户列表 |
重启 SSH 服务
修改配置文件后,需要重启 SSH 服务以使更改生效:
sudo systemctl restart sshd
SSH 密钥认证

SSH 密钥认证比密码认证更安全,因为它不需要在网络中传输密码,以下是如何配置 SSH 密钥认证的步骤:
生成 SSH 密钥对
在客户端计算机上,使用以下命令生成 SSH 密钥对:
ssh-keygen -t rsa -b 4096
将公钥复制到服务器
将生成的公钥复制到服务器的 ~/.ssh/authorized_keys 文件中,可以使用以下命令:
ssh-copy-id -i ~/.ssh/id_rsa.pub 用户名@服务器地址
配置客户端
在客户端计算机上,编辑 SSH 客户端配置文件(通常是 ~/.ssh/config),添加以下内容:
Host 服务器地址
User 用户名
IdentityFile ~/.ssh/id_rsa SSH 配置高级技巧
使用 SSH 配置文件进行批量操作
可以将多个 SSH 连接配置在同一个 SSH 配置文件中,方便批量操作。

Host webserver
HostName webserver.example.com
User webuser
IdentityFile ~/.ssh/webuser_id_rsa
Host dbserver
HostName dbserver.example.com
User dbuser
IdentityFile ~/.ssh/dbuser_id_rsa 使用 SSH 端口转发
SSH 支持端口转发功能,可以将服务器上的端口映射到本地计算机,以下是一个示例:
ssh -L 本地端口:本地主机:服务器端口 用户名@服务器地址 FAQs
问题 1:如何查看 SSH 服务状态?
解答:使用以下命令查看 SSH 服务状态:
sudo systemctl status sshd
问题 2:如何禁止 root 用户登录 SSH?
解答:编辑 /etc/ssh/sshd_config 文件,将 PermitRootLogin 选项设置为 no,然后重启 SSH 服务:
sudo systemctl restart sshd

