华为云 ECS 安全加固实战:SSH 密钥登录 + Tailscale 私有网络

举报
yd_257918670 发表于 2026/10/21 22:53:40 2026/10/21
【摘要】 在华为云 ECS(Ubuntu 24.04)上配置 SSH 密钥登录、关闭密码登录并用 Tailscale 组建私有网络的完整步骤。

新开的云服务器暴露在公网上,22 端口很快就会被各种扫描器盯上。今天在一台华为云 ECS(Ubuntu 24.04 LTS,2 核约 2G 内存,40G 磁盘)上做了两件事:改用 SSH 密钥登录并关闭密码登录,再用 Tailscale 组建私有网络,让 SSH 不再依赖公网端口。下面是完整步骤和踩过的坑。

一、配置 SSH 密钥登录

1. 本地生成密钥

在自己的电脑上执行:

ssh-keygen -t ed25519 -C "my-laptop"

ed25519 密钥短、安全、速度快,一路回车即可(建议设置私钥口令)。公钥默认在 ~/.ssh/id_ed25519.pub。

2. 把公钥写入服务器

先用密码登录服务器,然后:

mkdir -p /root/.ssh
chmod 700 /root/.ssh
echo "<你的公钥内容>" >> /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys

权限很关键:.ssh 目录必须是 700,authorized_keys 必须是 600,否则 sshd 会直接忽略密钥。本地有 ssh-copy-id 的话也可以用 ssh-copy-id root@<服务器公网IP> 一步完成。

3. 测试密钥登录

保持当前会话不要关闭,另开一个终端:

ssh -i ~/.ssh/id_ed25519 root@<服务器公网IP>

能免密进入,才进行下一步。

4. 关闭密码登录

编辑 /etc/ssh/sshd_config,设置:

PasswordAuthentication no

注意 Ubuntu 24.04 的坑:主配置文件开头会 Include /etc/ssh/sshd_config.d/*.conf,而 sshd 对同一选项以首次出现的值为准。云镜像里的 50-cloud-init.conf 常常写着 PasswordAuthentication yes,会让你的修改失效。检查一下:

grep -r PasswordAuthentication /etc/ssh/sshd_config.d/

把其中的值也改为 no,然后校验并重启:

sshd -t && systemctl restart ssh
sshd -T | grep -i passwordauthentication

最后一条输出 passwordauthentication no 才算真正生效。再开新终端确认密钥仍能登录,之后再关掉旧会话。万一把自己锁在外面,还可以通过华为云控制台的 VNC 远程登录补救。

二、安装 Tailscale 组建私有网络

curl -fsSL https://tailscale.com/install.sh | sh
systemctl enable --now tailscaled
tailscale up

tailscale up 会打印一个登录链接,在浏览器中打开并授权该设备加入你的 tailnet。完成后查看分配的地址:

tailscale ip -4

会得到一个 100.x.x.x 的地址。Tailscale 基于 WireGuard,节点之间尽量点对点直连,打不通时才经由中继转发,流量全程加密;对于个人或小团队管理几台服务器来说,免费额度完全够用,也不需要自己维护 VPN 服务端。本地电脑同样安装 Tailscale 并登录同一账号后,就可以走私有网络登录:

ssh root@<服务器Tailscale IP>

确认稳定可用后,可以到华为云控制台的「安全组 → 入方向规则」中删除或收紧 22 端口的放行规则,让 SSH 彻底不暴露在公网上。建议先保留控制台 VNC 作为兜底通道。

三、两个小提示

重启后短暂拒绝连接。 新建或刚重启的 ECS,系统和 sshd 启动需要一点时间,前几十秒出现 Connection refused 或超时是正常的,稍等再试即可,不必急着排查配置。

小内存加 swap。 2G 内存跑点编译或容器容易 OOM,进程被内核直接杀掉时往往没有明显报错,排查起来很费时间。建议加 2G swap:

fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab
free -h

最后一行写入 /etc/fstab 保证重启后自动挂载,free -h 能看到 Swap 一栏即表示成功。

总结

密钥登录替代密码,从根源上杜绝暴力破解;sshd_config.d 下的覆盖配置是 Ubuntu 24.04 最容易忽略的地方,务必用 sshd -T 验证。Tailscale 让服务器管理走私有网络,配合安全组关闭公网 22 端口,攻击面会小很多。整个过程最重要的原则只有一条:每一步改动都先验证,再关掉旧会话。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。