像专家一样使用 SSH:在 EC2 实例上创建隔离用户(不破坏任何东西)

发布: (2026年1月31日 GMT+8 16:05)
4 分钟阅读
原文: Dev.to

Source: Dev.to

如果你曾在同一台服务器上部署过多个项目,你可能会感受到这样的紧张感:

“我不想让这个新东西干扰已经在运行的东西。”

这正是我当时的处境:

  • 一个已有的 EC2 实例
  • 一个运行大型项目的主用户
  • 一个我想要干净、安全地部署的较小服务

解决方案不是 Docker 或 Kubernetes,而是更简单的——Linux 用户 + SSH 密钥,正确地使用它们。

目标

  • 创建一个新的 Linux 用户(cc
  • 在该用户下隔离新项目
  • 使用 SSH 直接以 cc 登录
  • 保持一切安全且专业——不使用 hack,也不走捷径

1. 以已有用户 SSH 登录服务器

ssh your-current-user@your-ec2-ip

2. 创建新用户

sudo adduser cc          # 系统会提示你输入密码和可选信息
sudo usermod -aG sudo cc # (可选但推荐)授予 sudo 权限

此时用户 cc 已经存在,但还不能通过 SSH 登录。

3. 了解 SSH 认证的工作原理

  • SSH 证明你拥有 私钥
  • 服务器检查目标用户的 ~/.ssh/authorized_keys 中是否列有对应的 公钥
  • 如果公钥未列出,登录会被拒绝。

cc 这样的全新用户的允许列表是空的。

使用详细模式测试现有的 SSH 连接,看看正在提供哪个密钥:

ssh -v your-current-user@your-ec2-ip

你会看到类似下面的行:

Offering public key: ~/.ssh/backend-key

这表明你的笔记本正在使用哪个私钥。对应的公钥是 ~/.ssh/backend-key.pub这就是你为新用户应该使用的唯一密钥。

4. 为 cc 设置 SSH 目录和 authorized_keys

# 在服务器上
sudo mkdir -p /home/cc/.ssh
sudo chmod 700 /home/cc/.ssh
sudo chown cc:cc /home/cc/.ssh

# 创建 authorized_keys 文件
sudo nano /home/cc/.ssh/authorized_keys

将本地 backend-key.pub 文件的全部内容粘贴到 authorized_keys 中,然后修正权限:

sudo chown cc:cc /home/cc/.ssh/authorized_keys
sudo chmod 600 /home/cc/.ssh/authorized_keys

5. 测试新登录

在本地机器上运行:

ssh cc@your-ec2-ip

如果一切设置正确,你就会看到 🎉。验证一下:

whoami   # 应输出: cc
pwd      # 应输出: /home/cc

6. (可选)在 ~/.ssh/config 中添加快捷方式

Host cc-ec2
    HostName your-ec2-ip
    User cc
    IdentityFile ~/.ssh/backend-key

以后只需运行:

ssh cc-ec2

这种做法的好处

  • 项目之间完全隔离——独立的环境和依赖
  • 故障影响范围更小
  • 可扩展的设置,随需求增长
  • 专业安全——SSH 密钥抗暴力破解和钓鱼,是云环境的行业标准
  • 能够 完全禁用密码登录,仅在需要时保留 sudo 密码

你不仅仅是“让 SSH 工作”。你已经像专业人士一样配置了服务器:在用户层面管理身份和信任。一旦这种思维模型形成,SSH 就不再神秘,而是多服务服务器上可靠的工具。

祝你玩得开心 🚀

Back to Blog

相关文章

阅读更多 »