凌峰创科服务平台

Ubuntu如何开启SSH服务器?

  1. 更新系统包列表 (良好习惯)
  2. 安装 OpenSSH 服务器
  3. 启动并设置开机自启
  4. 配置防火墙 (如果正在使用)
  5. 从另一台电脑连接测试

详细步骤

第 1 步:更新系统包列表 (推荐)

在安装任何新软件之前,首先更新一下系统的软件包列表,以确保你安装的是最新版本。

Ubuntu如何开启SSH服务器?-图1
(图片来源网络,侵删)
sudo apt update

第 2 步:安装 OpenSSH 服务器

Ubuntu 默认可能没有安装 SSH 服务器,我们需要手动安装它,在 Ubuntu 中,最常用的 SSH 服务器实现是 OpenSSH

sudo apt install openssh-server

在安装过程中,系统会提示你确认并继续,按 Y 然后回车即可。

安装完成后,SSH 服务通常会自动启动,你可以通过以下命令检查其状态:

sudo systemctl status ssh

如果看到绿色的 active (running) 字样,说明 SSH 服务器正在正常运行。

Ubuntu如何开启SSH服务器?-图2
(图片来源网络,侵删)

第 3 步:启动并设置开机自启

如果服务没有自动启动,或者你想确保它每次开机都自动运行,可以使用以下命令。

启动 SSH 服务:

sudo systemctl start ssh

设置 SSH 服务开机自启:

sudo systemctl enable ssh

重启 SSH 服务 (在修改了配置文件后常用):

Ubuntu如何开启SSH服务器?-图3
(图片来源网络,侵删)
sudo systemctl restart ssh

停止 SSH 服务

sudo systemctl stop ssh

第 4 步:配置防火墙 (非常重要)

如果你的 Ubuntu 服务器启用了 ufw (Uncomplicated Firewall) 防火墙,你需要开放 SSH 端口(默认是 22),否则外部连接会被拒绝。

检查 UFW 状态:

sudo ufw status

如果返回 Status: active,说明防火墙已启用。

允许 SSH 连接:

sudo ufw allow ssh

或者你也可以直接指定端口号:

sudo ufw allow 22/tcp

重新加载防火墙以应用更改:

sudo ufw reload

启用防火墙 (如果尚未启用):

sudo ufw enable

注意:启用防火墙时,它会询问你是否继续,因为规则可能会阻止你的当前连接,如果你是通过 SSH 连接的,直接按 y 回车是安全的,因为我们刚刚已经允许了 SSH 端口。

第 5 步:从另一台电脑连接测试

你的 Ubuntu 服务器已经准备就绪,你可以从任何另一台电脑(可以是 Windows, macOS, 或另一台 Linux)进行连接。

你需要知道你 Ubuntu 服务器的 IP 地址

获取 Ubuntu 服务器的 IP 地址: 在你的 Ubuntu 服务器终端中运行:

ip addr show

或者更简单的命令:

hostname -I

你会看到一个或多个 IP 地址,通常是 168.x.x (局域网) 或 xxx.xxx.xxx.xxx (公网 IP)。

从客户端进行连接:

  • 在 Linux 或 macOS 上: 打开终端,使用 ssh 命令。

    ssh your_username@your_server_ip

    your_username 替换为你的 Ubuntu 用户名(ubuntu, admin 等),将 your_server_ip 替换为上一步查到的 IP 地址。

  • 在 Windows 上:

    • Windows 10/11: 现代版 Windows 10 和 11 内置了 OpenSSH 客户端,直接在“开始”菜单搜索 PowerShellCMD,然后输入同样的 ssh 命令。
    • 使用 PuTTY: 如果你使用的是旧版 Windows,可以下载免费的 PuTTY 客户端,打开 PuTTY,输入你的服务器 IP 地址,端口保持 22,然后点击 "Open"。

首次连接时,你会看到一条关于主机密钥未知的警告,这是正常的,输入 yes 并回车,然后输入你 Ubuntu 用户的密码即可登录。


安全配置建议 (可选但推荐)

默认的 SSH 配置已经足够安全,但你可以通过编辑配置文件来进一步增强安全性。

编辑 SSH 配置文件:

sudo nano /etc/ssh/sshd_config

提示:使用 nano 是因为它对新手比较友好,你也可以使用 vim

以下是一些常见的安全加固项:

  1. 更改默认端口 (降低自动化攻击风险) 找到 #Port 22 这一行,取消注释并修改为一个不常用的端口号(2222)。

    Port 2222

    注意:修改后,连接时也需要指定新端口,ssh -p 2222 user@ip,确保你的防火墙也放行了新端口 (sudo ufw allow 2222/tcp)。

  2. 禁用 root 用户直接登录 找到 PermitRootLogin 这一行,确保其值为 no

    PermitRootLogin no

    这意味着你必须先以普通用户身份登录,然后使用 sudo 提升权限,这更安全。

  3. 使用密钥认证而非密码 这是目前最安全的认证方式,你可以生成一对公钥和私钥,将公钥上传到服务器,登录时用私钥进行“签名”验证,无需输入密码。

编辑完成后,保存文件 (在 nano 中是 Ctrl+X,然后按 Y,再回车),并重启 SSH 服务使配置生效:

sudo systemctl restart ssh

常见问题排查

  • 连接超时或被拒绝?

    1. 检查 SSH 服务是否正在运行: sudo systemctl status ssh
    2. 检查防火墙设置: sudo ufw status,确保允许了 SSH 端口。
    3. 检查服务器 IP 地址是否正确。
    4. 如果你在云服务器(如阿里云、腾讯云、AWS)上,请检查其安全组 (Security Group) 设置,是否放行了入站的 SSH 端口。
  • 提示 "Permission denied (publickey,password)"?

    1. 如果你禁用了密码登录,但客户端没有提供有效的私钥,就会出现这个错误,确保你使用了密钥认证,或者检查 sshd_config 中的 PasswordAuthentication 是否为 yes
    2. 确保你输入的用户名和密码正确。
  • 忘记了 SSH 端口? 可以在 /etc/ssh/sshd_config 文件中查看 Port 指令的值。

希望这份详细的指南能帮助你成功开启 Ubuntu 的 SSH 服务器!

分享:
扫描分享到社交APP
上一篇
下一篇