我正在运行 Debian 服务器作为多个用户的 SFTP 数据存储。我不允许用户通过 ssh 登录。用户有什么办法可以更改密码吗?他们大多使用 WinSCP 客户端。
我曾尝试让他们的密码过期,但 WinSCP 并没有提示他们更改密码。
有任何想法吗?
答案1
嗯... SFTP 是文件传输协议,不支持任何用户管理(密码更改),所以简而言之,在 SFTP 中这是不可能的。
唯一的可能性是仅允许 SSH 访问以便更改密码(例如,使用ForceCommand
代理在sftp-server
和passwd
命令之间进行选择),例如:
#!/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