Ubuntu SSH 服务器安装与配置:一步一步教你

Ubuntu SSH 服务器安装与配置:一步一步教你

SSH(Secure Shell)是一种加密网络协议,用于在不安全的网络上安全地访问和管理远程计算机。在 Ubuntu 系统上搭建 SSH 服务器,可以让你从任何地方安全地连接到你的服务器,执行命令、传输文件等操作。本文将一步一步详细介绍如何在 Ubuntu 系统上安装和配置 SSH 服务器,即使你是新手也能轻松上手。

一、安装 OpenSSH Server

  1. 更新系统软件包列表:

打开终端,执行以下命令:

bash
sudo apt update

这将确保你的系统拥有最新的软件包列表,以便安装最新版本的 OpenSSH Server。

  1. 安装 OpenSSH Server:

执行以下命令安装 OpenSSH Server:

bash
sudo apt install openssh-server

系统会提示你确认安装,输入 y 并按下回车键即可。安装过程可能需要一些时间,取决于你的网络速度。

  1. 验证安装:

安装完成后,OpenSSH Server 会自动启动。你可以通过以下命令验证 SSH 服务是否正在运行:

bash
sudo systemctl status ssh

如果 SSH 服务正在运行,你会看到类似以下输出,其中 active (running) 表示服务正在运行:

● ssh.service - OpenSSH server daemon
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2023-10-27 10:00:00 UTC; 5min ago
...

二、配置 SSH Server(可选)

OpenSSH Server 的默认配置已经足够安全,但在某些情况下,你可能需要根据自己的需求进行一些调整。SSH 的配置文件位于 /etc/ssh/sshd_config

  1. 备份配置文件:

在修改配置文件之前,建议先备份一份,以便在出现问题时可以恢复:

bash
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

  1. 修改配置文件:

使用你喜欢的文本编辑器打开配置文件:

bash
sudo nano /etc/ssh/sshd_config

以下是一些常用的配置选项:

  • Port 修改 SSH 端口号。默认端口是 22,为了提高安全性,可以将其更改为其他端口。例如,将其更改为 2222:

    Port 2222

  • PermitRootLogin 是否允许 root 用户直接登录。为了安全起见,建议禁用 root 用户直接登录,并使用普通用户登录后再使用 sudo 命令执行管理员操作。将其设置为 no

    PermitRootLogin no

  • PasswordAuthentication 是否允许密码认证。为了提高安全性,可以禁用密码认证,并使用密钥认证。将其设置为 no(需要先配置密钥认证,详见下文):

    PasswordAuthentication no

  • AllowUsersDenyUsers 指定允许或禁止登录的用户。例如,只允许用户 user1user2 登录:

    AllowUsers user1 user2

  • ListenAddress 指定 SSH 服务器监听的 IP 地址。如果你的服务器有多个 IP 地址,你可以指定 SSH 服务器只监听特定 IP 地址。例如,只监听 192.168.1.100

    ListenAddress 192.168.1.100

  • 重启 SSH 服务:

修改配置文件后,需要重启 SSH 服务才能使更改生效:

bash
sudo systemctl restart ssh

三、配置密钥认证(推荐)

密钥认证比密码认证更加安全。以下是配置密钥认证的步骤:

  1. 在客户端生成密钥对:

在你的本地计算机(用于连接 SSH 服务器的计算机)上打开终端,执行以下命令生成密钥对:

bash
ssh-keygen -t rsa

系统会提示你输入保存密钥的文件名和密码。可以直接按回车键使用默认文件名和不设置密码。

  1. 将公钥复制到服务器:

将生成的公钥(通常是 ~/.ssh/id_rsa.pub)复制到服务器的 ~/.ssh/authorized_keys 文件中。你可以使用 ssh-copy-id 命令:

bash
ssh-copy-id username@server_ip_address

其中 username 是你的服务器用户名,server_ip_address 是你的服务器 IP 地址。如果修改了 SSH 端口,需要使用 -p 参数指定端口号:

bash
ssh-copy-id -p 2222 username@server_ip_address

如果没有 ssh-copy-id 命令,可以使用以下命令手动复制:

bash
cat ~/.ssh/id_rsa.pub | ssh username@server_ip_address "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

  1. 测试密钥认证:

尝试使用 SSH 连接服务器:

bash
ssh username@server_ip_address

如果配置正确,你应该可以直接登录服务器,而无需输入密码。如果修改了 SSH 端口,需要使用 -p 参数指定端口号。

四、防火墙配置

如果你的服务器启用了防火墙,需要允许 SSH 端口的流量通过。

UFW 防火墙:

bash
sudo ufw allow ssh # 允许默认端口 22
sudo ufw allow 2222/tcp # 允许自定义端口 2222
sudo ufw enable # 启用防火墙
sudo ufw status # 查看防火墙状态

五、其他安全建议

  • 定期更新系统: 及时更新系统软件包,包括 OpenSSH Server,以修复已知的安全漏洞。

  • 使用强密码: 如果仍然使用密码认证,请确保使用强密码。

  • 限制 SSH 访问: 使用 AllowUsersDenyUsers 选项限制可以访问 SSH 服务器的用户。

  • 监控 SSH 登录: 定期检查 SSH 登录日志,以便及时发现可疑活动。

通过以上步骤,你已经成功在 Ubuntu 系统上安装和配置了 SSH 服务器。现在,你可以从任何地方安全地访问和管理你的服务器了. 记住,安全是一个持续的过程,你需要定期检查和更新你的 SSH 配置,以确保服务器的安全。 这篇文章详细介绍了 Ubuntu SSH 服务器的安装和配置,希望能帮助你更好地理解和使用 SSH。

THE END