- 创建可以执行sudo的普通用户
背景: 服务器系统是使用 Rocky Linux 系统, 应该禁止root远程登录, 禁用密码登录, 改为密钥登录
1. 创建普通用户禁止root用户远程登录
# 添加一个普通用户
sudo adduser xxxuser
# 查看用户密码情况, 用户不设置密码, 则密码是被锁定的
passwd -S xxxuser
# 给用户设置密码, 建议至少12位, 包含大小写字母, 数字, 特殊符号
passwd xxxuser
2. 添加xxxuser用户到用户组 wheel, 该用户组可以执行sudo, -aG 表示append追加到指定组
usermod -aG wheel xxxuser
3. 测试是否设置成功
# 执行sudo命令, 返回root就算成功
sudo whoami
- 禁止root远程登录, 禁止密码登录, 开启密钥登录
1. 使用 xshell 的 ED25519 算法生成公钥和私钥
2. 在服务器 xxxuser 的 home 目录下新建 .ssh 目录, 在 .ssh 目录下新建 authorized_keys
# 设置目录权限
chmod 700 .ssh
# 设置keys文件权限
chmod 600 authorized_keys
3. 在 authorized_keys 文件中写入公钥内容
4. 可以去xshell中使用密钥进行登录测试看是否成功登录
5. 修改 SSH 配置
sudo vim /etc/ssh/sshd_config
# 禁用密码登录(确保密钥已测试成功再启用!)
PasswordAuthentication no
# 禁止 root 通过 SSH 登录
PermitRootLogin no
# 启用公钥认证(通常默认开启)
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
# 更改 SSH 端口, 建议 1024--65535 之间
Port 13559
然后还要把 13559 这个新 ssh 端口, 在防火墙 firewall 放开
sudo firewall-cmd --permanent --add-port=13559/tcp
6. 重启sshd服务
sudo systemctl restart sshd
如果绑定新ssh端口失败, 极有可能是SELinux的限制, 需要执行
sudo semanage port -a -t ssh_port_t -p tcp 13559