Ubuntu SFTP日志查看步骤
SFTP作为SSH的子协议,其日志默认集成在SSH服务器的日志文件中。Ubuntu系统中,主要日志路径为:
/var/log/auth.log:Debian/Ubuntu系统的标准认证日志,记录SFTP连接、认证及操作详情(适用于大多数Ubuntu版本);/var/log/syslog:部分系统可能将SSH日志合并至此,可通过grep命令过滤(如grep 'sshd' /var/log/syslog);journalctl:若系统使用systemd(Ubuntu 16.04及以上版本默认启用),可通过该工具查看sshd服务的实时日志。使用tail -f命令可实时监控日志文件的新增内容,便于快速捕捉SFTP活动(如用户连接、文件传输):
sudo tail -f /var/log/auth.log
若需过滤SFTP相关条目(避免无关信息干扰),可结合grep命令:
sudo tail -f /var/log/auth.log | grep 'sftp'
此命令会仅显示包含“sftp”关键字的日志行,突出显示SFTP操作。
若需回顾过去的SFTP活动,可使用cat或less命令查看完整日志文件:
sudo cat /var/log/auth.log | grep 'sftp' # 查看所有SFTP相关记录
sudo less /var/log/auth.log # 分页查看完整日志(按“q”退出)
通过grep过滤可快速定位特定信息(如某用户的SFTP操作)。
对于使用systemd的系统,journalctl可集中管理sshd服务的日志,支持实时跟踪和过滤:
sudo journalctl -u sshd.service -f # 实时查看sshd服务日志
sudo journalctl -u sshd.service | grep 'sftp' # 过滤SFTP相关日志
-u参数指定服务名称(sshd),-f参数开启实时模式。
使用awk命令可统计特定用户的SFTP连接次数(如用户ftpuser):
sudo awk '/sftp.*ftpuser/ {print $1}' /var/log/auth.log | sort | uniq -c
此命令会输出ftpuser用户的SFTP连接次数及对应时间(按时间排序)。
通过grep过滤“Failed password”或“Login incorrect”关键字,可快速识别SFTP登录失败行为:
sudo grep 'Failed password' /var/log/auth.log
sudo grep 'Login incorrect' /var/log/auth.log
此类日志有助于排查暴力破解或权限问题。
若需监控某用户的SFTP操作(如testuser),可直接在grep中指定用户名:
sudo grep 'testuser' /var/log/auth.log
此命令会显示testuser的所有SFTP相关日志(包括连接时间、IP地址、操作类型)。
若默认日志信息不足(如缺少文件传输详情),可通过修改SSH配置文件提升日志级别:
sudo nano /etc/ssh/sshd_config
找到#LogLevel INFO行(默认注释状态),取消注释并将级别改为VERBOSE(记录更详细的SFTP操作,如文件上传/下载):
LogLevel VERBOSE
修改配置后,需重启sshd服务使更改生效:
sudo systemctl restart sshd
调整后,日志中将包含更详细的SFTP操作信息(如session opened for local user、sftp session started等)。
sudo),避免权限不足导致无法访问;logrotate工具轮转日志);