🚀 从零开始部署阿里云 Ubuntu 服务器(安全实践版)

本文适用于使用 阿里云 ECS + Ubuntu 22.04 的用户,目标是:安全、高效、可维护地初始化一台公网服务器


一、创建实例

  1. 登录 阿里云控制台
  2. 创建 ECS 实例:
    • 镜像:Ubuntu 22.04 64位
    • 规格:按需选择(如 2核2G)
    • 网络:默认 VPC 即可
    • 登录方式:选择“密钥对”(不要用密码!)
      • 创建新密钥对(如 my-server-key),下载 .pem 文件并妥善保存
  3. 记下分配的 公网 IP(如 <your-public-ip>

💡 密钥对会自动注入到 ubuntu 用户的 ~/.ssh/authorized_keys


二、本地连接服务器(Ubuntu 客户端)

1. 准备密钥

1
2
3
4
5
# 移动密钥到 ~/.ssh/
mv ~/Downloads/my-server-key.pem ~/.ssh/

# 设置权限(必须!)
chmod 600 ~/.ssh/my-server-key.pem

2. 首次登录(Ubuntu 镜像默认用户是 ubuntu

1
ssh -i ~/.ssh/my-server-key.pem ubuntu@<your-public-ip>

✅ 成功登录后,你会看到 Ubuntu 欢迎信息。


三、创建专属管理用户(推荐)

避免直接使用 ubunturoot,创建自己的用户:

1
2
3
4
5
# 创建用户(如 <your-username>)
sudo adduser <your-username>

# 赋予 sudo 权限
sudo usermod -aG sudo <your-username>

四、配置 SSH 密钥登录(用新用户)

1. 在本地生成密钥(如果还没有)

1
2
ssh-keygen -t rsa -b 4096
# 默认保存在 ~/.ssh/id_rsa(私钥)和 ~/.ssh/id_rsa.pub(公钥)

2. 将公钥上传到服务器(通过 root 或 ubuntu 用户操作)

1
2
3
4
5
6
# 在服务器上(以 ubuntu 或 root 身份)
sudo mkdir -p /home/<your-username>/.ssh
sudo sh -c "cat >> /home/<your-username>/.ssh/authorized_keys" < ~/.ssh/id_rsa.pub
sudo chown -R <your-username>:<your-username> /home/<your-username>/.ssh
sudo chmod 700 /home/<your-username>/.ssh
sudo chmod 600 /home/<your-username>/.ssh/authorized_keys

🔁 或者手动复制 cat ~/.ssh/id_rsa.pub 内容,粘贴到 /home/<your-username>/.ssh/authorized_keys

3. 测试新用户登录

1
ssh <your-username>@<your-public-ip>

✅ 应直接登录成功。


五、禁用不安全的登录方式(关键!)

1. 编辑 SSH 配置

1
sudo nano /etc/ssh/sshd_config

确保以下设置:

1
2
3
PermitRootLogin no          # 禁止 root 远程登录
PasswordAuthentication no # 禁用密码登录
PubkeyAuthentication yes # 启用密钥认证

2. 重启 SSH 服务

1
sudo systemctl restart sshd

3. 验证

  • ssh root@... → 应拒绝
  • ssh <your-username>@... → 应成功

六、配置安全组(防火墙)

  1. 登录阿里云控制台 → 安全组
  2. 添加入方向规则:
    • SSH (22):授权对象 = 你的公网IP/32
      • 获取当前 IP:curl ifconfig.me
    • (可选)VPC 内互通100.64.0.0/10100.104.0.0/16(阿里云内网段)

❌ 不要长期开放 0.0.0.0/0 到 22 端口!


七、日常使用建议

操作 命令
切换到 root sudo -i
执行单条管理员命令 sudo apt update
查看当前用户 whoami
退出 root exit

✅ 始终以普通用户(如 <your-username>)登录,用 sudo 提权。


八、附录:关键概念说明

  • 100.104.0.0/16 是什么?
    属于 100.64.0.0/10(CGNAT 保留地址),在阿里云中作为 VPC 内网 IP 使用,仅限云内通信,不可公网访问。

  • 为什么不用 root 登录?
    减少攻击面,符合最小权限原则。

  • 为什么禁用密码?
    密钥比密码更安全,且无法被暴力破解。


✅ 最终效果

  • 只有你的 IP 能访问 SSH
  • 只能通过密钥登录
  • 登录用户为 <your-username>,通过 sudo 管理系统
  • root 无法远程登录
  • 服务器安全基线达标

🎉 你现在拥有一台安全、标准、可维护的生产级服务器!