423 字
2 分钟
Linux 服务器初始化:创建管理员用户并启用 SSH 密钥登录

新服务器不应长期直接使用 root 账户,也不应把密码作为主要远程登录方式。下面的流程将日常操作切换到拥有 sudo 权限的普通用户,并通过 SSH 密钥认证访问服务器。

避免把自己锁在门外

请保持当前 root 会话不断开,在另一个终端确认新用户可以通过密钥登录并运行 sudo 后,再修改 SSH 的密码登录策略。

1. 创建日常管理员账户#

<user> 替换为实际用户名:

Terminal window
sudo useradd --create-home --shell /bin/bash <user>
sudo passwd <user>
sudo usermod -aG sudo <user>

在 Debian/Ubuntu 上,可用以下命令验证该用户是否拥有 sudo 权限:

Terminal window
su - <user>
sudo -v

2. 在本地生成 SSH 密钥#

如果还没有可用密钥,在本地机器执行:

Terminal window
ssh-keygen -t ed25519 -a 100 -C "[email protected]"

私钥应始终只保留在你的受控设备或密钥管理工具中;不要上传、粘贴到聊天记录,也不要提交到仓库。

3. 部署并验证公钥#

使用密码仅完成这一次公钥部署:

Terminal window
ssh-copy-id <user>@<server-host>
ssh <user>@<server-host>

无法使用 ssh-copy-id 时,可将本地 ~/.ssh/id_ed25519.pub 的内容追加到服务器用户的 ~/.ssh/authorized_keys,并确保权限正确:

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

4. 验证后收紧 SSH 策略#

确认密钥登录正常后,在 /etc/ssh/sshd_config.d/hardening.conf(或发行版对应的 sshd 配置文件)加入:

PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes

检查配置并平滑重载服务:

Terminal window
sudo sshd -t
sudo systemctl reload ssh
恢复方式

在关闭密码认证前,确保至少两台受控设备保存了可用私钥,或确认云厂商控制台能够提供带外恢复入口。

Linux 服务器初始化:创建管理员用户并启用 SSH 密钥登录
https://blog.xqcherry.top/posts/operations/linux-user-and-ssh-access/
作者
xqcherry
发布于
2026-05-27
许可协议
CC BY-NC-SA 4.0