创建新用户并启用ssh登录

本文适合需要在服务器上创建专用账号(如备份用户)的运维人员。你会学到:创建用户并禁用其 sudo/su 提权能力,配置 SSH 公钥登录及正确的目录权限。

1. 创建用户

1.1 创建用户

首先创建一个名为 rclone-backup 的用户,并为其设置密码:

sudo adduser rclone-backup

按照提示设置密码并填写其他信息。

1.2 禁用 sudo 权限

为了禁用 rclone-backup 用户使用 sudo -i,可以通过将该用户从 sudo 组中移除来实现:

sudo deluser rclone-backup sudo

1.3 禁用 su 命令

su 命令通常由 /etc/pam.d/su 文件控制。可以通过修改该文件来禁止某些用户使用 su。编辑 /etc/pam.d/su 文件:

sudo nano /etc/pam.d/su

然后在文件中找到类似于以下的行:

# Uncomment the following line to enable 'su' access for wheel group.
# auth required pam_wheel.so use_uid

将该行注释掉或确保没有其他组能够使用 su,从而禁止 rclone-backup 用户使用 su

此外,可以使用 pam_wheel.so 来限制哪些用户可以使用 su。例如,编辑 /etc/group 文件并确保 rclone-backup 用户不属于 wheel 组。

1.4 确认权限

为了确保 rclone-backup 用户无法使用 sudosu,可以通过以下命令进行测试:

sudo -u rclone-backup sudo -i
sudo -u rclone-backup su

这两条命令应该都会被拒绝。如果一切正常,rclone-backup 用户就只能访问其权限范围内的资源,不能切换到 root 用户。

2. 配置ssh登录

配置公钥

mkdir /home/rclone-backup/.ssh
vim authorized_keys

配置权限

OpenSSH 出于安全考虑,它要求私钥和权限受限。

# 设置 home 目录权限
chmod 755 /home/rclone-backup

# 设置 .ssh 目录权限
chmod 700 /home/rclone-backup/.ssh

# 设置 authorized_keys 文件权限
chmod 600 /home/rclone-backup/.ssh/authorized_keys

# 更改所有权为 rclone-backup 用户
chown -R rclone-backup:rclone-backup /home/rclone-backup/.ssh

3. 登录ssh

使用ssh客户端登录ssh:

ssh -i 私钥路径 rclone-backup@服务器IP

验证与自查

  1. sudo -u rclone-backup sudo -isudo -u rclone-backup su 均被拒绝
  2. 用私钥登录 rclone-backup@服务器IP 成功,且无需密码
  3. ls -ld /home/rclone-backup/.ssh 权限为 700authorized_keys 权限为 600
  4. 登录后执行 sudo -i 提示无权限,说明无法提权

参考