Ssh
如何讓客戶端的 OpenSSH SFTP 子系統支持 LogLevel 設置?
通過 SFTP 連接到伺服器時,我可以使用
-o
指定 aLogLevel
,如下所示: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
:-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)。