通过 SFTP 连接到服务器时,我可以使用-o
指定 a 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
?
另外,我对远程服务器没有任何控制权,所以我不是在询问通过sshd_config
. 我已经尝试过了,但它不起作用。
该sftp-client.c
文件有对 debug3 的调用,那么它们要去哪里?
使用
-vvv
切换到sftp
. 选项-o
直接传递给ssh
进程,但对sftp
自身无效。它在手册页中有很好的描述
sftp
:还
-o
解释说它被传递给ssh
并且在过程中无效sftp
: