在 Linux 上查看 SFTP 日志,通常取决于你使用的是 OpenSSH 的 SFTP(最常见)还是其他 SFTP 服务(如 vsftpd、proftpd)。下面按常见情况说明。
OpenSSH 的 SFTP 实际上是通过 sshd 提供的,因此 SFTP 日志就是 sshd 日志。
不同发行版位置不同:
/var/log/secure
查看 SFTP 相关:
grep sftp /var/log/secure
/var/log/auth.log
查看 SFTP 相关:
grep sftp /var/log/auth.log
journalctl -u sshd
只看 SFTP:
journalctl -u sshd | grep sftp
默认情况下,只能看到:
例如:
Accepted password for user from 1.2.3.4 port 54321 ssh2
但 看不到具体上传/下载文件。
默认 SFTP 不记录文件传输,需要修改配置。
vi /etc/ssh/sshd_config
找到或添加:
Subsystem sftp internal-sftp -l INFO -f AUTH
或(更详细):
Subsystem sftp internal-sftp -l VERBOSE -f AUTH
重启 sshd:
systemctl restart sshd
之后可在日志中看到:
open "/home/user/test.txt" flags READ
close "/home/user/test.txt"
如果你用的是 vsftpd:
/var/log/vsftpd.log
或:
/var/log/messages
开启日志:
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
日志位置:
/var/log/proftpd/
查看:
cat /var/log/proftpd/access.log
因为 OpenSSH 默认不记录 SFTP 文件操作,必须加 -l 参数。
tail -f /var/log/auth.log | grep sftp
不一样:
✅ 使用 internal-sftp
✅ 开启 -l INFO 或 -l VERBOSE
✅ 配合 logrotate 管理日志
如果你愿意,可以告诉我:
我可以给你一份可直接用的配置。