你的第一个虚拟 Linux 实验室:简易设置指南

发布: (2026年2月8日 GMT+8 12:54)
3 分钟阅读
原文: Dev.to

Source: Dev.to

在 Ubuntu 上设置 SSH 服务器

# 更新软件包列表
sudo apt update

# 安装 OpenSSH 服务器
sudo apt install -y openssh-server

# 启用并启动服务
sudo systemctl enable ssh
sudo systemctl start ssh

安装 SSH 服务器并确保它在启动时自动运行。

验证服务

sudo systemctl status ssh

你应该会看到 active (running)

检查虚拟机的 IP 地址:

ip a

你会看到类似下面的一行:

inet 192.168.45.100/24

使用该 IP 地址从 Windows 进行连接。

从 Windows PowerShell 连接

ssh alok@192.168.45.100

首次连接时会提示:

Are you sure you want to continue connecting (yes/no)?

输入 yes 以信任虚拟机的 SSH 指纹(它会被保存到 known_hosts)。

将 Windows 公钥复制到 Ubuntu

Windows PowerShell 没有 ssh-copy-id,可以使用一行命令:

type $env:USERPROFILE\.ssh\id_ed25519.pub |
  ssh alok@192.168.45.100 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

此命令会把你的 Windows 公钥追加到虚拟机上的 ~/.ssh/authorized_keys

测试免密码登录

ssh alok@192.168.45.100

你应该可以在不输入密码的情况下登录。

在 Ubuntu 端可以验证已授权的密钥:

cat ~/.ssh/authorized_keys

你会看到类似以下的条目:

ssh-rsa ... (older key)
ssh-ed25519 ... alok@DESKTOP-381CHVR (your Windows key)

加固权限

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

正确的权限是 SSH 接受密钥的前提。

加固 SSH 配置

先备份原始配置文件:

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

编辑文件:

sudo vim /etc/ssh/sshd_config

添加或修改以下设置:

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

PasswordAuthentication no
KbdInteractiveAuthentication no
UsePAM yes

PermitRootLogin no

AllowUsers alok

这些设置实现了:

  • 仅密钥认证
  • 禁用密码登录
  • 禁止 root 登录
  • 仅允许用户 alok 使用 SSH

应用更改

sudo systemctl restart ssh

验证加固后的设置

在 Windows 上:

ssh alok@192.168.45.100

应能成功连接。

在 Ubuntu 上,确认密码认证已关闭:

sudo sshd -T | grep -i passwordauthentication

预期输出:

passwordauthentication no

SSH 状态汇总

功能状态
SSH 访问✅ 已启用
密码登录❌ 已禁用
基于密钥的登录✅ 已启用
Root 登录❌ 已禁用
用户限制(alok✅ 已强制
已信任的主机验证✅ 已信任
开机自动启动 SSH✅ 已启用

现在,你已经在 Ubuntu 虚拟机上拥有了生产级、DevOps 风格的 SSH 设置,并可安全地从 Windows 访问。 💪

0 浏览
Back to Blog

相关文章

阅读更多 »