在sftp上允许root用户login,同时禁止通过sshlogin?

为了安全起见,我只允许一个虚拟用户在我的CentOS 5.8服务器上通过SSHlogin,为此我添加了:

AllowUsers dummyaccount 

当访问我的服务器时,我使用虚拟机login并使用su -来获得root权限,这种方式非常好。

现在我已经使用了sftp:

 Subsystem sftp /usr/libexec/openssh/sftp-server 

当我用我的ssh客户端build立一个ssh隧道,并用FileZilla连接到它,我可以很好地login我的虚拟帐户,我最终在它的根。

然而,我现在想或者获得root权限与我的虚拟帐户上sftp时,所以我可以完全用它来pipe理文件系统或者我想允许rootloginsftp而不是ssh,所以换句话说, d用ss​​hlogin虚拟机,并使用su -获得如上所述的root权限,但是当我创build一个ssh隧道时,我可以通过sftplogin到我的根目录。

我听说有一种方法只允许用户通过将其shell改为sftp-server来允许sftp访问,但是显然这不是root的选项,因为改变它的shell会破坏我所知道的系统。 用这种configuration让不同的用户能够工作,但是他们只能像虚拟机一样通过sftp访问文件系统。

你会build议什么?

要求基于密钥的authentication。 设置PermitRootLogin without-password选项。 设置一个具有internal-sftp强制命令的密钥。 或者用一个匹配部分更新你的sshd_config来强制sftp。

 Match user root ForceCommand internal-sftp # force SFTP