Ssh

如何讓客戶端的 OpenSSH SFTP 子系統支持 LogLevel 設置?

  • November 4, 2016

通過 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

-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)。

引用自:https://serverfault.com/questions/813103