如何让客户端的 OpenSSH SFTP 子系统遵守 LogLevel 设置?

如何让客户端的 OpenSSH SFTP 子系统遵守 LogLevel 设置?

当通过 SFTP 连接到服务器时,我可以用来-o指定LogLevel,如下所示:

sftp -oLogLevel=DEBUG3 username@host

这会输出大量有关登录过程的调试信息。但是,到了这一步,所有调试都会停止:

debug1: Sending subsystem: sftp
debug2: channel 0: request subsystem confirm 1
debug2: callback done
debug2: channel 0: open confirm rwindow 0 rmax 32768
debug2: channel 0: rcvd adjust 131072
debug2: channel_input_status_confirm: type 99 id 0
debug2: subsystem request accepted on channel 0
Connected to host.
sftp> ls
Some    Directories
sftp> cd Some
sftp> ls
sftp> quit
debug2: channel 0: read<=0 rfd 4 len 0
debug2: channel 0: read failed
debug2: channel 0: close_read
debug2: channel 0: input open -> drain
debug2: channel 0: ibuf empty
debug2: channel 0: send eof
debug2: channel 0: input drain -> closed
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
Received disconnect from <IP>: 11: User Disconnected

那条命令怎么样?ls我在哪里可以得到它的调试信息 cd??? quit

另外,我无法控制远程服务器,因此我不会询问如何通过 在服务器上配置 SFTP 子系统sshd_config。我试过了,但没有用。

sftp-client.c文件有对 debug3 的调用,那么它们要去哪里呢?

答案1

使用-vvv开关sftp。选项-o直接传递给ssh进程,但对 本身无效sftp

手册页中对此进行了很好的描述sftp

-v      Raise logging level.  This option is also passed to ssh.

-o解释说它被传递给ssh并且在过程中无效sftp

-o ssh_option

可用于以 ssh_config(5) 中使用的格式将选项传递给 ssh。这对于指定没有单独 sftp 命令行标志的选项很有用。例如,要指定备用端口,请使用:sftp -oPort=24。有关下面列出的选项及其可能值的完整详细信息,请参阅 ssh_config(5)。

相关内容