凌峰创科服务平台

Ubuntu如何开启SSH服务器配置?

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

Ubuntu如何开启SSH服务器配置?-图1
(图片来源网络,侵删)
  1. 更新系统:保持系统软件包为最新版本。
  2. 安装 OpenSSH 服务器:Ubuntu 默认不安装 SSH 服务器,需要手动安装。
  3. 启动并设置开机自启:确保 SSH 服务正在运行,并在系统重启后自动启动。
  4. 配置防火墙:允许 SSH 流量通过防火墙。
  5. 连接测试:从另一台电脑尝试连接。
  6. (可选)安全加固配置:这是非常重要的一步,可以提高服务器的安全性。

第 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,所以正确的命令是:

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

如果看到绿色的 active (running) 字样,说明服务已成功启动。


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

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

启动 SSH 服务:

sudo systemctl start ssh

设置 SSH 服务开机自启:

Ubuntu如何开启SSH服务器配置?-图3
(图片来源网络,侵删)
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 服务器上的用户名(ubunturoot,但建议用普通用户)。
  • 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

故障排查

  • 连接超时或拒绝连接
    1. 检查服务器 IP 地址是否正确。
    2. 检查防火墙规则 (sudo ufw status),确保已允许你使用的 SSH 端口。
    3. 检查 SSH 服务是否正在运行 (sudo systemctl status ssh)。
    4. 检查 SSH 配置文件中的 Port 设置是否与客户端连接的端口一致。
  • 提示 "Permission denied (publickey,password)"
    1. 如果你设置了 PasswordAuthentication no,但你的客户端还在尝试用密码登录,就会这样,请确保你已正确设置了 SSH 密钥。
    2. 检查你的公钥是否正确地添加到了服务器的 ~/.ssh/authorized_keys 文件中。
    3. 检查 ~/.ssh 目录和 authorized_keys 文件的权限是否正确:
      chmod 700 ~/.ssh
      chmod 600 ~/.ssh/authorized_keys

遵循以上步骤,你就可以成功地在 Ubuntu 上开启并安全地配置 SSH 服务器了。

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