在哪里可以找到 SCP 日志?

在哪里可以找到 SCP 日志?

我似乎无法让 SCP 日志(在服务器上)显示在任何地方。我搜索了不少页面,包括:

scp / ssh 登录 ssh 服务器

http://ubuntuforums.org/showthread.php?t=1789437

http://ubuntuforums.org/showthread.php?t=851891

我尝试在 10.04(是的,EOL 等)上使用 OpenSSH 5.3,在 12.04 上使用 OpenSSH 5.9,启用了所有级别的日志记录,包括DEBUG3/etc/ssh/sshd_config并尝试了普通用户和 root 用户,但没有找到有关传输的文件的信息(甚至已传输文件)将显示在任何日志中SCP。即使没有启动SFTP,日志也会显示在 auth.log 中。LogLevelVERBOSE

我是否遗漏了什么?有人能确认他们能够让 SCP 日志显示在某处吗?

谢谢

答案1

scp就像命令一样在内部执行,ssh并且不会记录传输的文件。您只能在 /var/log/auth.log 或类似位置记录身份验证日志。

答案2

当我必须想出一种方法来监控 SCP 传输时,我研究过这一点。OpenSSHscp实用程序不记录任何内容。它支持底层 SSH 会话的调试输出,但不会记录正在进行的实际文件传输。

类似地,可以将 OpenSSH 服务器设置为记录其正在执行的操作的详细信息,也可以将其设置为记录用户连接和运行的事实scp,但它不会记录正在进行的实际文件传输。

如果您无法让这些用户改用 SFTP,则可以使用以下三种方法:

  1. 调查商业 SSH/SFTP/SCP 服务器。它们通常应该支持记录文件传输。

  2. scp将服务器上的实用程序替换为记录所需数据的实用程序。OpenSSH 是开源的。知道如何使用 C 语言为 Unix 编程的人可以下载源代码并进行修改。

  3. 用“包装器”替换该scp实用程序,该包装器启动原始 scp 程序并监视其操作。Unix 有调试工具可以监视另一个进程正在做什么。

我们采用了第三种方法。我们编写了一个 Perl 脚本,在斯特拉斯。strace 将输出 scp 进程打开和关闭的文件的名称。Perl 脚本读取 strace 输出并将其转换为日志条目。

相关内容