Debian 12 创建新用户仅允许 SSH 密钥登录并禁止 root 直接登录
最近购买了一台 VPS,服务商给的控制台可以一键安装各类 Linux 发行版,我自己选择安装了 Debian12,但默认使用 root 用户和密码直接进行登录,个人认为不安全也不方便并且服务商的控制台无法直接修改调整,只能手动进服务器手动配置了。
1、创建新用户
本文示例中用 abc123 来作为新用户名,实际使用中请自行修改为你自己的真实用户名。
部分 VPS 厂商预装的系统可能没有 sudo 和 vim 请先安装,后面需要用到,安装命令如下:
apt-get update
apt-get install sudo #安装sudo
apt-get install vim #安装vim
创建 abc123 用户
sudo adduser abc123 #创建abc123
执行上面的命令后会提示设置用户密码,这里我们可以先按照提示设置,后续会禁用密码登录,输入两遍密码后其它的设置项可以留空直接回车跳过即可。
2、配置 SSH 密钥登录
在本地机器生成密钥对
如果尚未生成,已经生成过的用户可以直接跳过,如下命令在 Windows 或 MacOS 终端执行,执行后会生成两个文件,一个是 id_ed16618 另一个是 id_ed16618.pub (通常在 .ssh 文件夹可找到):
ssh-keygen -t ed16618 -C "abc123@debian12"
将公钥添加到服务器
ssh-copy-id -i ~/.ssh/id_ed16618.pub abc123@服务器IP
或手动将公钥内容添加到~/.ssh/authorized_keys
并设置权限(注意将 abc123 改为你的真实用户名):
sudo mkdir -p /home/abc123/.ssh
sudo chmod 700 /home/abc123/.ssh
sudo cp /path/to/public_key.pub /home/abc123/.ssh/authorized_keys #/path/to/public_key.pub 是你的id_ed16618.pub 文件和所在路径
sudo chmod 600 /home/abc123/.ssh/authorized_keys
sudo chown -R abc123:abc123 /home/abc123/.ssh
3、修改 SSH 配置
编辑 SSH 配置文件:
sudo vi /etc/ssh/sshd_config
进行以下更改:
禁止root直接登录:
PermitRootLogin no
启用密钥认证(确保以下行未被注释):
PubkeyAuthentication yes
针对 abc123 用户禁用密码登录:
PasswordAuthentication no
4、重启SSH服务
sudo systemctl restart ssh
5、允许新用户 abc123 提权到 root
将用户添加到sudo
组:
sudo usermod -aG sudo abc123
如果需要修改 root 用户的密码请执行:
passwd