我使用午夜指挥官 sftp 到我的 ubuntu VPS。
VPS 需要 sudo 来执行任何重要操作,例如复制/移动/删除文件。因此,例如我无法按进行F5复制(除了复制到~
)。
sudo
mc 是否可以在需要时请求用户提升/发送?
答案1
对的,这是可能的。我不知道mc
内部原理,但通常您必须sftp-server
通过 调用远程主机sudo
。有两种方法可以做到这一点,在客户端或在服务器上。在客户端,您必须知道如何mc
调用sftp
并修改如何mc
调用它。在服务器上更容易,您可以通过ForceCommand
.看https://unix.stackexchange.com/a/637624/330987
客户端上的更改(sudo
在远程主机上配置)
仅供参考,无法使用RemoteCommand
选项,sftp
会因错误而失败Cannot execute command-line and remote command.
(因为在后台sftp
调用ssh ... -oRemoteCommand="/usr/bin/sudo /usr/libexec/sftp-server" ... -- localhost sftp
和sftp在后台命令的末尾似乎与远程命令选项)
sftp -b - -s '/usr/bin/sudo /usr/libexec/sftp-server'
但由于尚不清楚如何mc
使用 SFTP,我建议采用服务器端方法(见下文)。
在服务器上更改
LogLevel DEBUG3
AuthorizedKeysFile .ssh/authorized_keys
ChallengeResponseAuthentication no
UsePAM yes
PrintMotd no
Subsystem sftp /usr/libexec/sftp-server
Match User <mc user>
X11Forwarding no
AllowTcpForwarding no
PermitTTY no
ForceCommand /usr/bin/sudo /usr/libexec/sftp-server