在 Debian 上,SFTP 通常是通过 OpenSSH 的 sshd 服务提供的,所以 SFTP 日志一般记录在 系统日志(rsyslog / journald) 中,而不是单独的 sftp 日志文件。
下面按常见情况说明怎么查。
Debian 8+ 默认使用 systemd:
sudo journalctl -u ssh.service
只看 SFTP 相关:
sudo journalctl -u ssh.service | grep sftp
实时查看:
sudo journalctl -u ssh.service -f
sudo tail -f /var/log/auth.log
SFTP 登录、断开、命令执行通常都在这里,例如:
Accepted password for user from 192.168.1.10 port 54322 ssh2
session opened for user user by (uid=0)
sudo grep sftp /var/log/auth.log
grep sftp /etc/ssh/sshd_config
常见配置:
Subsystem sftp internal-sftp
说明 SFTP 是 sshd 内部子系统。
默认 不记录具体文件操作。如需记录:
编辑 /etc/ssh/sshd_config:
Subsystem sftp internal-sftp -l INFO -f AUTH
或针对 Match 用户:
Match Group sftpusers
ChrootDirectory /sftp/%u
ForceCommand internal-sftp -l VERBOSE
重启 ssh:
sudo systemctl restart ssh
日志仍写入 /var/log/auth.log
sudo grep 'user xxx' /var/log/auth.log
| 方式 | 命令 |
|---|---|
| systemd | journalctl -u ssh |
| 日志文件 | /var/log/auth.log |
| 实时查看 | tail -f /var/log/auth.log |
| 详细 SFTP | internal-sftp -l VERBOSE |
如果你愿意,可以告诉我:
我可以给你更精确的配置示例。