有没有办法在不更改用户密码的情况下禁用 SFTP 访问?

有没有办法在不更改用户密码的情况下禁用 SFTP 访问?

我们有一个 Web 应用,允许用户设置供应商 SFTP 帐户。我们希望用户能够以可逆方式(即无需更改密码)管理可以访问其服务器的供应商帐户。

通过团体成员身份来处理是不是最好的方式?

目前,用户在登录时被 chroot 并被限制在其主目录中。

该机器正在运行Debian Squeeze(6.0.4)和OpenSSH_5.5p1

答案1

我的回答是基于您使用系统用户帐户来管理 sftp 用户的前提。

  1. passwd --lock johndoe并且passwd --unlock johndoe(不会考虑 SSH 密钥,但手册页 passwd(1) 提供了一种解决方法
  2. 删除用户的系统帐户并从 /etc/master.passwd 保存密码哈希,然后在启用后重新创建用户
  3. 修改用户的登录 shell,使其指向 /bin/noshell 或可执行脚本,该脚本会立即弹出错误或提示信息
  4. 创建一个组“白名单”和一个组“黑名单” - 将 sftp 用户添加到任一组。相应地修改组权限,以允许一个人执行 /usr/libexec/sftp-server 或其他任何相应的权限,而另一个人则不能

相关内容