为了安全起见,我只允许虚拟用户通过 SSH 登录我的 CentOS 5.8 服务器,为此我添加了:
AllowUsers dummyaccount
当访问我的服务器时,我使用虚拟用户登录并su -
获取 root 权限,这非常有效。
现在我已经使用以下命令设置了 sftp:
Subsystem sftp /usr/libexec/openssh/sftp-server
当我使用我的 ssh 客户端创建一个 ssh 隧道并使用 FileZilla 连接到它时,我可以使用我的虚拟帐户顺利登录并最终进入其根目录。
但是现在我想在 sftp 上使用我的虚拟帐户获得 root 权限,这样我就可以完全用它管理文件系统,或者我想允许 root 在 sftp 上登录但不允许在 ssh 上登录,换句话说我会用虚拟帐户登录 ssh 并使用su -
获得 root 权限,如上所述,但是当我创建 ssh 隧道时,我就可以通过 sftp 使用我的 root 登录。
我听说过一种通过将用户的 shell 更改为 sftp 服务器来仅允许用户进行 sftp 访问的方法,但这显然不是 root 的选择,因为据我所知,更改其 shell 会破坏系统。使用该配置创建不同的用户是可行的,但他们通过 sftp 对文件系统的访问权限与虚拟用户一样有限。
你有什么建议?
答案1
需要基于密钥的身份验证。设置PermitRootLogin without-password
选项。设置一个具有强制命令的密钥internal-sftp
。或者sshd_config
使用匹配部分更新您的以强制 sftp。
Match user root
ForceCommand internal-sftp # force SFTP