启用并配置 SSH 服务

本指南介绍如何设置 SSH 服务。

概述

openssh-server 捆绑包提供了用于在 Clear Linux* OS 中启用 SSH 服务的 OpenSSH 软件包。远程用户需要 SSH 服务才能使用加密登录 shell。

Clear Linux OS 将启用 sshd.socket 单元,该单元默认侦听端口 22 并根据需要启动 OpenSSH 服务。OpenSSH 首次启动时,它会生成服务所需的服务器 SSH 密钥。

必备条件

确保已安装 openssh-server 捆绑包。

要列出主机上的所有捆绑包,请输入:

sudo swupd bundle-list

要添加 openssh-server 捆绑包,请输入:

sudo swupd bundle-add openssh-server

更改默认端口

执行以下步骤以更改 OpenSSH 服务的默认侦听端口。

  1. 打开 sshd.socket 文件:

    sudo systemctl edit sshd.socket
    
  2. [Socket] 部分和 ListenStream 选项添加到 sshd.socket 文件中,如下所示。第一个 ListenStream 条目用于删除 Clear Linux OS 默认侦听端口值。第二个 ListenStream 条目用于设置新的默认侦听端口值。在此示例中,我们将新的默认端口设置为 4200:

    [Socket]
    ListenStream=
    ListenStream=4200
    

    务必在 sshd.socket 文件中的最后一行文本之后包含一个新行。

  3. 验证所做更改:

    cat /etc/systemd/system/sshd.socket.d/override.conf
    

    将显示以下输出:

    [Socket]
    ListenStream=
    ListenStream=4200
    
  4. 重新加载 systemd 守护程序配置:

    sudo systemctl daemon-reload
    
  5. 重新启动 sshd.socket 单元:

    sudo systemctl restart sshd.socket
    
  6. 确认 sshd.socket 单元正在侦听新端口:

    sudo systemctl status sshd.socket
    

    注解

    输出应该将 Active: 显示为 active(listening)

启用 SFTP

出于安全考虑,Clear Linux OS 默认禁用 SFTP(SSH 文件传输协议) 子系统。要启用 SFTP 子系统,您必须配置 SSHD(SSH 守护程序) 服务文件。

  1. 为 SSHD 服务创建 systemd 放置目录:

    sudo mkdir -p /etc/systemd/system/sshd@.service.d
    
  2. 创建以下文件:/etc/systemd/system/sshd@.service.d/sftp.conf

  3. 将 OPTIONS 环境变量添加到 sftp.conf 文件中。

    [Service]
    Environment="OPTIONS=-o Subsystem=\"sftp /usr/libexec/sftp-server\""
    
  4. 重新加载 systemd 配置:

    sudo systemctl daemon-reload
    

恭喜!SFTP 子系统已启用。

启用 root 登录

要通过 SSH 启用 root 登录,请执行以下步骤:

  1. /etc 中创建 ssh 目录(如果尚未存在)。

    mkdir /etc/ssh
    
  2. 创建以下文件(如果尚未存在):/etc/ssh/sshd_config

  3. /etc/ssh/sshd_config 中设置配置变量:

    PermitRootLogin yes
    

启用 X11 转发

使用 X11 转发可以通过 SSH 连接安全地运行图形应用程序(即 X 客户端)。这使得无需完整 VNC 或远程桌面设置便可启用远程 GUI 应用程序。要通过 SSH 启用 X11 转发,请执行以下步骤:

  1. /etc 中创建 ssh 目录(如果尚未存在)。

    mkdir /etc/ssh
    
  2. 创建以下文件(如果尚未存在):/etc/ssh/sshd_config

  3. 设置以下配置变量。

    AllowTcpForwarding yes
    X11UseLocalhost yes
    X11DisplayOffset 10
    X11Forwarding yes