如何安装和配置SSH
在 AlexHost VPS 上安装和安全配置 SSH:2025 年零信任设置
SSH = 你通往服务器的唯一入口。配置错误 = 在<5分钟内被黑客入侵。AlexHost 的 VPS 配备 NVMe 和 DDoS 保护,提供根访问权限,1 Gbps 端口——非常适合强化的 SSH。在本文中,我们将指导你如何在 Linux 上安装和配置 SSH,涵盖基础知识、配置选项和安全建议。
什么是 SSH?
SSH 代表安全外壳,它允许用户通过命令行界面安全地连接到远程系统。该协议加密客户端和服务器之间的数据,使其成为一种安全的通信方式,特别是在通过不安全的网络(如互联网)访问服务器时。
SSH 默认通过 22 端口运行,可以用于:
- 远程登录服务器
- 安全文件传输(使用 SCP 或 SFTP)
- 远程命令执行
- 端口转发和隧道
步骤 1:安装 SSH
大多数 Linux 发行版都预装了 SSH,但如果未安装,可以使用你发行版的包管理器轻松安装它。
对于 Ubuntu/Debian:
对于 CentOS/RHEL:
对于 Fedora:
对于 Arch Linux:
安装后,你将拥有 OpenSSH 服务器和客户端,允许你运行 SSH 服务器并连接到其他 SSH 服务器。
步骤 2:启动和启用 SSH 服务
安装后,你需要启动 SSH 服务(也称为 sshd – SSH 守护进程)并启用它在系统启动时运行。
启动 SSH 服务:
启用 SSH 在启动时启动:
你可以通过输入以下命令检查 SSH 是否正常运行:
如果服务正在运行,你会看到一个活动状态,表示 SSH 准备接受连接。
步骤 3:基本 SSH 配置
SSH 的行为由位于以下位置的配置文件控制:
你可以编辑此文件以修改 SSH 设置,例如更改默认端口、禁用根登录或设置基于密钥的身份验证。
要编辑该文件,请使用文本编辑器,如 nano 或 vim:
一些常见的配置更改包括:
1. 更改默认 SSH 端口
出于安全原因,最好将默认 SSH 端口从 22 更改为其他端口。这有助于减少针对默认 SSH 端口的自动攻击风险。
在配置文件中找到以下行:
取消注释并更改端口号:
保存文件后,重启 SSH 服务以应用更改:
确保更新你的防火墙规则,以允许在新端口上进行连接。
2. 禁用根登录
通过 SSH 允许根登录是一种安全风险。为防止这种情况,在配置文件中找到以下行:
将其更改为:
这将防止通过 SSH 直接访问根用户。用户仍然可以使用普通帐户登录,然后使用 sudo 或 su 切换到根用户。
3. 启用基于密钥的身份验证
SSH 基于密钥的身份验证是一种比使用密码更安全的方法。这涉及生成 SSH 密钥对(公钥和私钥),并使用私钥进行身份验证。
要强制使用基于密钥的身份验证,找到以下行并确保它们设置为 yes:
这将禁用基于密码的登录,仅允许通过基于密钥的身份验证访问 SSH。
步骤 4:生成 SSH 密钥(基于密钥的身份验证)
SSH 密钥对提供了一种安全的无密码登录方式。以下是生成和设置 SSH 密钥的方法:
步骤 1:生成 SSH 密钥对
在你的本地机器上,运行以下命令以生成密钥对:
系统会提示你输入一个文件名以保存密钥(或按 Enter 使用默认位置)和一个可选的密码短语以增加安全性。
这将创建两个文件:
- ~/.ssh/id_rsa:你的私钥(请妥善保管,不要分享)。
- ~/.ssh/id_rsa.pub:你的公钥(可以分享并添加到远程服务器)。
步骤 2:将公钥复制到服务器
要使用密钥进行 SSH 登录,将公钥复制到你想访问的远程服务器。你可以使用 ssh-copy-id 命令来完成此操作:
将 username 替换为你的远程服务器用户名,将 remote_host 替换为服务器的 IP 地址或主机名。
这将把你的公钥复制到服务器并添加到 ~/.ssh/authorized_keys 文件中,允许你无密码登录。
步骤 3:使用 SSH 密钥登录
现在,你可以使用你的私钥登录远程服务器:
如果你设置了自定义端口,请使用 -p 选项指定它:
步骤 5:保护你的 SSH 配置
在设置 SSH 后,遵循安全最佳实践以确保你的服务器受到未授权访问的保护是很重要的。
1. 使用强密码(如果使用密码身份验证)
如果你没有使用基于密钥的身份验证,请确保所有用户帐户使用强大、复杂的密码。
2. 使用防火墙
确保你的服务器防火墙仅允许你使用的 SSH 端口的流量。例如,如果你将 SSH 更改为 2222 端口,请使用 ufw(在 Ubuntu/Debian 上)或 firewalld(在 CentOS/RHEL 上)允许该端口的流量。
3. 限制 SSH 访问
通过配置防火墙或使用 /etc/hosts.allow 和 /etc/hosts.deny 限制 SSH 访问到特定的 IP 地址或范围。
步骤 6:测试和故障排除 SSH
配置 SSH 后,测试你的设置是很重要的。尝试使用 SSH 登录以确保一切正常工作。
常见的 SSH 故障排除提示:
- 检查防火墙设置:确保防火墙没有阻止 SSH 端口。
- 检查 SSH 服务状态:确保 SSH 服务正在运行,使用 systemctl status ssh。
- 验证配置:仔细检查 /etc/ssh/sshd_config 文件是否存在任何配置错误。
- 使用详细模式进行调试:如果有问题,连接时使用 -v 选项以查看详细输出:
结论
安装和配置 SSH 是任何需要安全管理远程系统的 Linux 管理员或用户的基本技能。通过遵循本指南,你可以设置 SSH,配置其以安全访问,并实施最佳实践以保护你的服务器免受未授权访问。一旦配置,SSH 就成为远程管理、自动化和系统之间安全通信的强大工具。
