温馨提示×

如何查linux sftp日志

小樊
51
2026-10-19 14:58:43
栏目: 智能运维

在 Linux 上查看 SFTP 日志,通常取决于你使用的是 OpenSSH 的 SFTP(最常见)还是其他 SFTP 服务(如 vsftpd、proftpd)。下面按常见情况说明。


一、OpenSSH SFTP(最常见)

OpenSSH 的 SFTP 实际上是通过 sshd 提供的,因此 SFTP 日志就是 sshd 日志。

1. 查看 sshd 日志位置

不同发行版位置不同:

CentOS / RHEL / Rocky / Alma

/var/log/secure

查看 SFTP 相关:

grep sftp /var/log/secure

Ubuntu / Debian

/var/log/auth.log

查看 SFTP 相关:

grep sftp /var/log/auth.log

systemd 系统(推荐)

journalctl -u sshd

只看 SFTP:

journalctl -u sshd | grep sftp

2. 默认日志内容(连接、断开)

默认情况下,只能看到:

  • 用户登录
  • 退出
  • 认证失败

例如:

Accepted password for user from 1.2.3.4 port 54321 ssh2

但 看不到具体上传/下载文件。


3. 开启详细 SFTP 文件操作日志(重要)

默认 SFTP 不记录文件传输,需要修改配置。

修改 sshd_config

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(SFTP / FTPS)

如果你用的是 vsftpd:

/var/log/vsftpd.log

或:

/var/log/messages

开启日志:

xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log

三、ProFTPD

日志位置:

/var/log/proftpd/

查看:

cat /var/log/proftpd/access.log

四、常见问题

Q1:为什么看不到上传下载?

因为 OpenSSH 默认不记录 SFTP 文件操作,必须加 -l 参数。

Q2:如何实时查看?

tail -f /var/log/auth.log | grep sftp

Q3:SFTP 和 FTP 日志一样吗?

不一样:

  • SFTP = SSH
  • FTP = 21 端口服务(vsftpd/proftpd)

五、推荐做法(生产环境)

✅ 使用 internal-sftp
✅ 开启 -l INFO 或 -l VERBOSE
✅ 配合 logrotate 管理日志

如果你愿意,可以告诉我:

  • Linux 发行版
  • 是否用 OpenSSH
  • 想看“谁传了什么文件”

我可以给你一份可直接用的配置。

0 踩