当通过 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)。