在 Ubuntu 上查看 SFTP 日志,通常取决于你使用的是哪种 SFTP 服务(一般是 OpenSSH 的 sftp-server)。下面是常见、实用的方法:
Ubuntu 默认使用 rsyslog,SFTP(基于 SSH)日志通常在:
sudo tail -f /var/log/auth.log
常见记录示例:
Accepted password for user from 192.168.1.100 port 54321 ssh2
session opened for user user by (uid=0)
SFTP 登录、断开都会在这里显示。
默认 SFTP 不记录文件操作,需要手动配置。
sudo vim /etc/ssh/sshd_config
找到或添加:
Subsystem sftp internal-sftp -l INFO -f AUTH
或(更详细):
Subsystem sftp internal-sftp -l VERBOSE -f AUTH
参数说明:
-l:日志级别(INFO / VERBOSE)-f:日志设施(AUTH)sudo systemctl restart ssh
sudo tail -f /var/log/auth.log
会看到类似:
open "/home/user/test.txt" flags READ
close "/home/user/test.txt"
Match User sftpuser
ChrootDirectory /home/sftpuser
ForceCommand internal-sftp -l VERBOSE -f AUTH
sudo systemctl restart ssh
这样不会影响普通 SSH 用户。
如果日志由 systemd 管理:
sudo journalctl -u ssh
实时查看:
sudo journalctl -u ssh -f
sudo grep sftp /var/log/auth.log
如果没有输出,说明:
-l❌ SFTP ≠ FTP(vsftpd 是另一套)
❌ 默认不记录文件操作
❌ Chroot 环境需正确权限,否则无法登录
如果你愿意,可以告诉我:
我可以给你更精确的配置方案。