概述
sshd 在后台运行,默认通过 TCP 端口 22 监听 SSH 客户端的连接。所有通信都经过加密以确保安全,并支持多种认证方式(密码、公钥等)。
主要功能
- 提供安全的远程 Shell 访问
- 支持 SCP/SFTP 文件传输
- 端口转发和隧道功能
- 支持多种认证机制(密码、公钥)
主要配置文件
sshd 的行为主要通过以下配置文件进行控制。
- 路径: /etc/ssh/sshd_config
主要选项
sshd 通常作为系统服务运行,因此很少直接使用命令行选项,但有一些选项可用于调试或测试目的。
运行与调试
生成的命令:
请尝试组合命令。
描述:
`sshd` 执行命令。
通过组合这些选项,您可以与 AI 一起虚拟地执行命令。
使用示例
sshd 通常通过 systemd 等服务管理器进行控制。
检查 sshd 服务状态
sudo systemctl status sshd
检查 sshd 服务的当前状态。
重启 sshd 服务
sudo systemctl restart sshd
在更改配置后重启 sshd 服务以应用更改。
启用 sshd 服务(开机自启)
sudo systemctl enable sshd
设置 sshd 服务在系统启动时自动启动。
验证 sshd 配置文件
sudo sshd -t
检查 sshd_config 文件是否存在语法错误。
以调试模式运行 sshd(用于测试)
sudo sshd -d -p 2222
以调试模式在非默认端口(例如 2222)上运行 sshd。在不影响实际服务的情况下进行测试非常有用。
安装
sshd 是 OpenSSH 服务器软件包的一部分。它通常默认安装在大多数 Linux 发行版上,如果没有,可以使用以下命令进行安装。
Debian/Ubuntu 系统
sudo apt update
sudo apt install openssh-server
CentOS/RHEL/Fedora 系统
sudo yum install openssh-server # 或 sudo dnf install openssh-server
提示与注意事项
sshd 在系统安全中扮演着至关重要的角色,因此在配置时建议考虑以下几点。
安全加固提示
- **更改默认端口**:将 `Port 22` 更改为其他任意高端口号,以减少暴力破解攻击。
- **禁用 root 登录**:设置为 `PermitRootLogin no`,禁止 root 用户直接登录。
- **禁用密码认证并使用公钥认证**:设置为 `PasswordAuthentication no`,并启用公钥认证 (`PubkeyAuthentication yes`) 以增强安全性。
- **限制允许的用户**:使用 `AllowUsers` 或 `AllowGroups` 选项明确指定允许 SSH 访问的用户或组。
- **配置防火墙**:配置防火墙(如 ufw, firewalld 等),仅允许从外部访问 SSH 端口(默认 22 或更改后的端口)。
修改配置后重启服务
修改 `sshd_config` 文件后,必须使用 `sudo systemctl restart sshd` 命令重启服务才能使更改生效。
连接测试
修改配置后,务必在另一个终端尝试 SSH 连接,以验证更改是否正确应用。建议在保持现有会话的情况下进行测试。