[英]How to get sftp version of remote server?
作為嘗試調試問題的一部分,我想知道在我嘗試推送文件的遠程服務器上安裝了哪個版本的 sftp。
有人告訴我在命令行中使用-vvv
,但我找不到任何關於它的文檔。 還有其他選擇嗎? 我的服務器是基於 Linux 的。
我的另一個問題是:假設兩台服務器沒有安裝相同版本的 SFTP,是否有一種協議版本協商來確保它們“說相同的語言”?
要獲取遠程 SSH 版本,可以使用telnet
或nc
連接到 ssh 端口。 遠程 ssh 服務器將發送其軟件版本字符串:
$ telnet localhost 22
Trying ::1...
Connected to localhost.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.9
在 ssh 調試輸出中,您需要查找以下幾行:
debug1: Local version string SSH-2.0-OpenSSH_7.9
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.9
第一行是本地客戶端的版本。 第二行是遠程服務器的ssh協議和軟件版本。
您在這里尋找的是“OpenSSH_7.9”部分。 這告訴您遠程服務器是 OpenSSH。 實際的 SFTP 服務器幾乎肯定是該版本的 OpenSSH 附帶的sftp-server
程序。
如果您特別想要SFTP 協議版本,sftp 命令行實用程序有一個“version”命令,可以打印協商的協議版本:
sftp> version
SFTP protocol version 3
您還可以通過運行“sftp -vv”並查找這一行調試輸出來獲取它:
debug2: Remote version: 3
請注意,OpenSSH 是迄今為止使用最廣泛的 SSH 服務器,它統一實現了 SFTP 版本 3。
我要補充一點,OpenSSH 調試輸出沒有真正的文檔。 理解它的方法是下載源的副本並找出哪些調試消息包含您想要的信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.