> 网络管理 > openssh-server

OpenSSH 服务器:SSH 服务配置与管理

OpenSSH 服务器是一个软件套件,它使用安全 Shell (SSH) 协议提供对远程系统的安全加密通信。该套件主要包含 'sshd' 守护进程,支持远程登录、文件传输(SCP、SFTP)和隧道等功能。对于系统管理员远程管理服务器和用户安全访问文件至关重要。

概述

OpenSSH 服务器包提供 'sshd' (SSH 守护进程),用于接收和处理 SSH 客户端的连接请求。它是远程系统安全访问的核心组件,通过数据加密和强大的认证机制来增强安全性。

主要功能

  • 远程登录和 Shell 访问 (SSH)
  • 安全文件传输 (SCP, SFTP)
  • 端口转发和隧道
  • 支持多种认证方式(密码、公钥、GSSAPI 等)

安装

OpenSSH 服务器通常不包含在大多数 Linux 发行版的默认安装中,或者在最小安装时会被排除。以下是主要发行版中安装 OpenSSH 服务器的方法。

Debian/Ubuntu

sudo apt update
sudo apt install openssh-server

使用 APT 包管理器进行安装。

CentOS/RHEL/Fedora

sudo yum install openssh-server
# 或使用 dnf
sudo dnf install openssh-server

使用 YUM 或 DNF 包管理器进行安装。

安装后检查服务

安装后,检查 'sshd' 服务是否自动启动,并在需要时启用它。

检查和启用服务

sudo systemctl status sshd
sudo systemctl enable sshd --now

主要选项

OpenSSH 服务器的主要配置通过 '/etc/ssh/sshd_config' 文件进行。以下是此配置文件中常用的选项。

sshd_config 配置

生成的命令:

请尝试组合命令。

描述:

`openssh-server` 执行命令。

通过组合这些选项,您可以与 AI 一起虚拟地执行命令。

使用示例

与 OpenSSH 服务器配置和管理相关的常见使用示例。

启动/停止/重启 sshd 服务

sudo systemctl start sshd
sudo systemctl stop sshd
sudo systemctl restart sshd

在使用 systemd 的系统中控制 sshd 服务。

检查 sshd 服务状态

sudo systemctl status sshd

检查 sshd 守护进程的当前状态。

更改 SSH 端口 (修改 sshd_config)

sudo sed -i 's/^#Port 22/Port 2222/' /etc/ssh/sshd_config
sudo systemctl restart sshd

将默认 SSH 端口 (22) 更改为 2222 的示例。修改文件后需要重启 sshd 服务。

禁用 root 登录

sudo sed -i 's/^PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
sudo systemctl restart sshd

在 sshd_config 中将 PermitRootLogin 设置为 'no' 以增强安全性。

仅允许特定用户登录

echo 'AllowUsers myuser' | sudo tee -a /etc/ssh/sshd_config
sudo systemctl restart sshd

在 sshd_config 中添加 'AllowUsers' 选项,仅允许 'myuser' 用户进行 SSH 登录。

提示与注意事项

为安全高效地运行 OpenSSH 服务器提供的提示和注意事项。

安全增强提示

  • **更改默认端口 (22)**:可以减少成为暴力破解攻击的目标。
  • **禁用密码认证,使用公钥认证**:这是最强大的认证方法。密码容易被猜测或泄露。
  • **禁用 root 登录**:root 账户拥有所有权限,直接登录是不安全的,建议使用普通用户账户登录后再使用 `sudo`。
  • **仅允许特定用户/组**:使用 `AllowUsers` 或 `AllowGroups` 选项限制可访问的账户。
  • **配置防火墙**:仅允许外部访问 SSH 端口(默认 22 或更改后的端口),并配置防火墙(ufw、firewalld 等)。
  • **安装 Fail2ban**:通过阻止重复登录失败的 IP 地址来防御暴力破解攻击。

配置更改注意事项

修改 sshd_config 文件后,务必使用 `sudo sshd -t` 命令检查配置文件是否存在语法错误,然后使用 `sudo systemctl restart sshd` 命令重启服务。使用错误的配置重启服务可能导致 SSH 连接无法进行。


相同类别命令