我想知道是否有办法logging服务器收到的命令。 它可以是所有的SSH命令,只要它包含与文件传输有关的命令的信息即可。
我遇到了SFTP客户端的问题,创build者正在询问日志,但是我找不到任何现有的日志。
我正在寻找login两个或者CentOS或者OS X(尽pipe我怀疑是否有可能,两者都是相似的)。
OpenSSH版本4.4p1及更高版本(包括CentOS 5的最新版本)内置了SFTP日志loggingfunction – 您只需要对其进行configuration即可。
在你的sshd_config中find这个:
Subsystem sftp /usr/libexec/openssh/sftp-server
并将其更改为:
Subsystem sftp /usr/libexec/openssh/sftp-server -l INFO
INFO只是您在默认情况下看到的一个细节级别,它提供了有关文件传输,权限更改等的详细信息。如果您需要更多信息,则可以相应地调整日志级别。 各级(按详细顺序)是:
QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2, and DEBUG3
VERBOSE以上的任何信息可能都比您要查找的信息要多,但也可能有用。
与sftp-server相同的交换机logging也适用于internal-sftp。 下面是我的/ etc / ssh / sshd_config中的一个例子:
Subsystem sftp internal-sftp -f AUTH -l INFO
使用INFO级别日志logging启用的消息将开始显示在/ var / log / messages下(至less在基于Red Hat的Distros下):
May 27 05:58:16 test-server sshd[20044]: User child is on pid 20049 May 27 05:58:16 test-server sshd[20049]: subsystem request for sftp by user test-user May 27 05:58:16 test-server internal-sftp[20050]: session opened for local user test-user from [192.168.1.1] May 27 05:58:16 test-server internal-sftp[20050]: received client version 3 May 27 05:58:16 test-server internal-sftp[20050]: realpath "." May 27 05:58:21 test-server internal-sftp[20050]: opendir "/home/test-user/" May 27 05:58:21 test-server internal-sftp[20050]: closedir "/home/test-user/" May 27 05:58:21 test-server internal-sftp[20050]: lstat name "/home/test-user/upload" May 27 05:58:21 test-server internal-sftp[20050]: realpath "/home/test-user/upload/" May 27 05:58:21 test-server internal-sftp[20050]: stat name "/home/test-user/upload" May 27 05:58:24 test-server internal-sftp[20050]: open "/home/test-user/upload/test-file.pdf" flags WRITE,CREATE,TRUNCATE mode 0664 May 27 05:58:25 test-server internal-sftp[20050]: close "/home/test-user/upload/test-file.pdf" bytes read 0 written 1282941