如何在不允许 SSH 登录的情况下更改 SFTP 密码?

如何在不允许 SSH 登录的情况下更改 SFTP 密码?

我正在运行 Debian 服务器作为多个用户的 SFTP 数据存储。我不允许用户通过 ssh 登录。用户有什么办法可以更改密码吗?他们大多使用 WinSCP 客户端。

我曾尝试让他们的密码过期,但 WinSCP 并没有提示他们更改密码。

有任何想法吗?

答案1

嗯... SFTP 是文件传输协议,不支持任何用户管理(密码更改),所以简而言之,在 SFTP 中这是不可能的。

唯一的可能性是仅允许 SSH 访问以便更改密码(例如,使用ForceCommand代理在sftp-serverpasswd命令之间进行选择),例如:

#!/bin/sh
# Script: /usr/local/bin/wrapper.sh 

case "$SSH_ORIGINAL_COMMAND" in
    "/path/to/sftp-server")
        /path/to/sftp-server
        ;;
    "passwd")
        passwd
        ;;
    *)
        echo "Sorry. Only passwd to change password or sftp is allowed"
        exit 1
        ;;
esac

相关内容