温馨提示×

CentOS SSH多用户管理技巧

小樊
49
2025-11-15 18:31:43
栏目: 智能运维

CentOS SSH多用户管理技巧

一 基础安全与多用户接入

  • 创建系统用户与家目录:使用命令useradd -m username创建用户,使用passwd username设置密码。
  • 启用密钥登录:客户端执行ssh-keygen -t rsa -b 4096,将公钥通过ssh-copy-id username@server_ip或手动追加到服务器用户的**~/.ssh/authorized_keys**。
  • 核心配置(/etc/ssh/sshd_config):建议设置PubkeyAuthentication yes、按需设置PasswordAuthentication yes/noPermitRootLogin no、通过AllowUsers user1 user2白名单限制可登录用户、用MaxSessions 10控制每用户会话数。
  • 使配置生效:执行systemctl restart sshd
  • 防火墙放行:使用firewall-cmd --permanent --add-service=ssh && firewall-cmd --reload;如使用iptables,添加规则iptables -A INPUT -p tcp --dport 22 -j ACCEPT
  • 连接测试:从客户端执行ssh username@server_ip验证登录与密钥是否生效。

二 SFTP多用户隔离与权限控制

  • 创建SFTP专用组与用户:执行groupadd sftpusers,创建用户并加入该组(如useradd -m -G sftpusers sftpuser),设置密码。
  • 配置Chroot与强制SFTP:在**/etc/ssh/sshd_config中使用Match Group sftpusers块,设置ChrootDirectory %h**、ForceCommand internal-sftpAllowTcpForwarding noX11Forwarding no
  • 目录与权限要点:Chroot根目录(如**/home/sftpuser**)需由root:root拥有且权限755;为用户创建可写目录(如**/home/sftpuser/uploads**),并设为sftpuser:sftpusers 755
  • 重启服务与测试:执行systemctl restart sshd,使用sftp sftpuser@your_server_ip验证仅SFTP可用且目录受限。
  • 说明:部分系统路径可能为**/usr/libexec/openssh/sftp-server**,但更推荐使用internal-sftp

三 登录控制与审计策略

  • 登录白名单:通过AllowUsers精确控制可登录账户,减少攻击面。
  • 禁用高风险登录:设置PermitRootLogin no,必要时仅允许密钥登录。
  • 会话与资源控制:使用MaxSessions限制每用户会话数,避免资源滥用。
  • 精细访问控制:结合PAM与**/etc/pam.d/sshd**,利用如pam_listfile.soitem=user sense=allow file=/etc/ssh/allowed_users实现外部用户清单控制,文件权限建议600
  • 持续加固:保持系统与SSH组件及时更新,并启用SELinux等安全模块增强整体防护。

四 快速排错清单

  • 权限与属主:确认**~/.ssh700**、authorized_keys600;Chroot根目录必须为root:root 755,可写目录单独赋权给相应用户。
  • SELinux上下文:若启用SELinux,SFTP目录可能需要恢复为default_t或相应类型,可用restorecon -R /home/sftpuser修复。
  • 端口与防火墙:确认sshd监听端口与firewalld/iptables放行规则一致;如使用非默认端口,同步更新配置与防火墙。
  • 配置语法:修改**/etc/ssh/sshd_config后先执行sshd -t检查语法,再systemctl restart sshd**,避免锁死。
  • 日志定位:查看**/var/log/securejournalctl -u sshd**,快速定位认证失败、权限拒绝与Chroot相关错误。

0