Skip to content

在 Linux 上安装和配置 OpenSSH 服务器

OpenSSH 是 Linux 系统中最常用的远程登录工具,它提供了一个安全的加密通道,用于在客户端和服务器之间进行通信。本指南将详细介绍如何在主流的 Linux 发行版上安装和配置 OpenSSH 服务器。


1. 检查 OpenSSH 服务器状态

在安装之前,可以先检查系统是否已经安装并运行了 OpenSSH 服务器。

bash
sudo systemctl status sshd

如果显示 active (running),则表示 SSH 服务器已在运行。如果未安装或未运行,则需要进行安装。


2. 安装 OpenSSH 服务器

Debian/Ubuntu 系统

对于基于 Debian 或 Ubuntu 的系统,使用 apt 包管理器:

bash
sudo apt update
sudo apt install openssh-server -y

安装完成后,sshd 服务通常会自动启动。

CentOS/RHEL/Fedora 系统

对于基于 CentOS、RHEL 或 Fedora 的系统,使用 yumdnf 包管理器:

bash
sudo yum install openssh-server -y
# 或者对于较新的系统:
# sudo dnf install openssh-server -y

安装完成后,需要手动启动并设置 sshd 服务开机自启:

bash
sudo systemctl start sshd
sudo systemctl enable sshd

3. 配置防火墙

如果你的 Linux 服务器启用了防火墙(如 ufwfirewalld),你需要允许 SSH 服务的默认端口(TCP 22)通过。

对于 UFW (Ubuntu/Debian)

bash
sudo ufw allow ssh
# 或者指定端口
# sudo ufw allow 22/tcp
sudo ufw enable # 如果防火墙未启用,则启用它
sudo ufw status

对于 Firewalld (CentOS/RHEL/Fedora)

bash
sudo firewall-cmd --permanent --add-service=ssh
# 或者指定端口
# sudo firewall-cmd --permanent --add-port=22/tcp
sudo firewall-cmd --reload
sudo firewall-cmd --list-all

4. 验证连接

现在,你可以从客户端机器尝试连接你的 Linux 服务器:

bash
ssh your_username@your_server_ip

首次连接时,系统会提示你确认服务器的指纹。输入 yes 后,输入你的用户密码即可登录。


5. 配置 sshd_config 文件 (可选,但推荐)

OpenSSH 服务器的主要配置文件是 /etc/ssh/sshd_config。你可以编辑此文件来修改 SSH 服务器的行为,例如更改端口、禁用密码登录、启用密钥登录等。

  1. 备份原始配置文件

    bash
    sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
  2. 编辑配置文件

    bash
    sudo nano /etc/ssh/sshd_config
    # 或者使用 vim
    # sudo vim /etc/ssh/sshd_config
  3. 常用配置项

    • Port 22:SSH 监听的端口。为了安全,建议修改为非标准端口(如 2222)。修改后,请确保防火墙规则也随之更新。
    • PermitRootLogin prohibit-password:禁止 root 用户通过密码登录。prohibit-password 允许 root 用户通过密钥登录,no 则完全禁止 root 登录。
    • PasswordAuthentication yes:是否允许密码认证。强烈建议在配置好密钥登录后将其设置为 no,以提高安全性。
    • PubkeyAuthentication yes:是否允许公钥认证。
    • AuthorizedKeysFile .ssh/authorized_keys:指定用户公钥文件的路径。
  4. 保存并退出编辑器

  5. 重启 SSH 服务以使更改生效

    bash
    sudo systemctl restart sshd

通过以上步骤,你就可以在 Linux 服务器上成功安装和配置 OpenSSH 服务器了。为了进一步提高安全性,建议配置 SSH 密钥免密登录。