整个过程分为以下几个步骤:

- 更新系统:保持系统软件包为最新版本。
- 安装 OpenSSH 服务器:Ubuntu 默认不安装 SSH 服务器,需要手动安装。
- 启动并设置开机自启:确保 SSH 服务正在运行,并在系统重启后自动启动。
- 配置防火墙:允许 SSH 流量通过防火墙。
- 连接测试:从另一台电脑尝试连接。
- (可选)安全加固配置:这是非常重要的一步,可以提高服务器的安全性。
第 1 步:更新系统
在安装任何新软件之前,最好先更新一下系统的软件包列表和已安装的包。
sudo apt update sudo apt upgrade -y
第 2 步:安装 OpenSSH 服务器
Ubuntu 使用 OpenSSH 作为其 SSH 实现,我们可以使用 apt 包管理器轻松安装它。
sudo apt install openssh-server -y
安装完成后,SSH 服务通常会自动启动,我们可以通过以下命令检查其状态:
sudo systemctl status sshd
注意:在 Ubuntu 上,SSH 服务的名称是 ssh,而不是 sshd,所以正确的命令是:

sudo systemctl status ssh
如果看到绿色的 active (running) 字样,说明服务已成功启动。
第 3 步:启动并设置开机自启
如果服务没有自动启动,或者你想确保它在每次开机时都运行,可以执行以下命令。
启动 SSH 服务:
sudo systemctl start ssh
设置 SSH 服务开机自启:

sudo systemctl enable ssh
检查是否已设置为开机自启:
sudo systemctl is-enabled ssh
如果输出 enabled,则表示设置成功。
第 4 步:配置防火墙 (UFW)
Ubuntu 默认使用 ufw (Uncomplicated Firewall) 作为防火墙,如果你开启了防火墙,需要显式允许 SSH 流量,否则将无法连接。
# 允许 SSH 流量 (端口号 22) sudo ufw allow ssh # (可选) 也可以直接指定端口号 # sudo ufw allow 22/tcp # 启用防火墙 (如果尚未启用) sudo ufw enable
在启用防火墙时,它会询问你是否确认,输入 y 并回车。
你的防火墙规则应该已经允许 SSH 连接了,你可以用以下命令查看规则:
sudo ufw status
第 5 步:连接测试
你可以从另一台计算机(例如你的 Windows, macOS 或另一台 Linux 电脑)尝试连接到你的 Ubuntu 服务器。
基本连接命令:
ssh your_username@your_server_ip
your_username:你想要登录的 Ubuntu 服务器上的用户名(ubuntu或root,但建议用普通用户)。your_server_ip:你的 Ubuntu 服务器的 IP 地址,你可以通过在服务器上运行ip a命令来找到它。
示例:
ssh ubuntu@192.168.1.100
首次连接时,系统会提示你服务器的密钥指纹无法验证,并询问你是否要继续连接,输入 yes 并回车。
系统会提示你输入该用户的密码,输入密码(输入时不会显示任何字符),回车即可登录。
第 6 步:安全加固配置 (非常重要)
默认的 SSH 配置可以工作,但为了安全,我们应该修改一些关键设置。
打开 SSH 配置文件
使用你喜欢的文本编辑器,nano:
sudo nano /etc/ssh/sshd_config
修改关键配置项
在文件中找到并修改以下几行(如果被 注释掉,请去掉 ):
-
更改默认 SSH 端口:将默认的 22 端口改为其他不常用的端口,可以防止自动化攻击工具的扫描。
#Port 22 Port 2222 # 任意选择一个 1024-65535 之间的端口 -
禁用 root 用户直接登录:这是一个非常重要的安全措施,应始终使用普通用户登录,然后使用
sudo提升权限。#PermitRootLogin prohibit-password PermitRootLogin no -
使用密钥认证,禁用密码登录:这是最安全的方式,你需要先生成一对 SSH 密钥,然后将公钥上传到服务器。
#PasswordAuthentication yes PasswordAuthentication no -
允许哪些用户登录:可以创建一个专门的
sshuser组,只允许该组的用户通过 SSH 登录。# AllowMembersOf sshgroup AllowUsers john alice # 只允许用户 john 和 alice 登录 # 或者使用 AllowGroups AllowGroups sshusers
保存并关闭文件
- 在
nano中,按Ctrl + X。 - 它会询问你是否保存更改,按
Y。 - 然后按
Enter确认文件名。
重启 SSH 服务使配置生效
sudo systemctl restart ssh
⚠️ 重要警告: 在修改配置前,请确保你通过其他方式(如控制台 VNC)可以访问服务器,如果你错误地配置了 SSH(例如防火墙规则和端口不匹配,或者禁用了所有用户的登录),你可能会被锁定在服务器之外,需要通过服务商的控制台进行恢复。
常用管理命令
- 查看 SSH 服务状态:
sudo systemctl status ssh
- 停止 SSH 服务:
sudo systemctl stop ssh
- 启动 SSH 服务:
sudo systemctl start ssh
- 重启 SSH 服务:
sudo systemctl restart ssh
- 查看 SSH 服务日志:
sudo journalctl -u ssh -f
故障排查
- 连接超时或拒绝连接:
- 检查服务器 IP 地址是否正确。
- 检查防火墙规则 (
sudo ufw status),确保已允许你使用的 SSH 端口。 - 检查 SSH 服务是否正在运行 (
sudo systemctl status ssh)。 - 检查 SSH 配置文件中的
Port设置是否与客户端连接的端口一致。
- 提示 "Permission denied (publickey,password)":
- 如果你设置了
PasswordAuthentication no,但你的客户端还在尝试用密码登录,就会这样,请确保你已正确设置了 SSH 密钥。 - 检查你的公钥是否正确地添加到了服务器的
~/.ssh/authorized_keys文件中。 - 检查
~/.ssh目录和authorized_keys文件的权限是否正确:chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
- 如果你设置了
遵循以上步骤,你就可以成功地在 Ubuntu 上开启并安全地配置 SSH 服务器了。
