作爲嘗試調試問題的一部分,我想知道哪個版本的sftp安裝在我嘗試推送文件的遠程服務器上。如何獲取sftp版本的遠程服務器?
我被告知在命令行使用-vvv
,但我不能提供任何有關它的文檔。有沒有其他的選擇?我的服務器是基於Linux的。
我的另一個問題是:說兩臺服務器沒有安裝相同版本的SFTP,有沒有一種協議版本的協商,以確保他們'說同一種語言'?
作爲嘗試調試問題的一部分,我想知道哪個版本的sftp安裝在我嘗試推送文件的遠程服務器上。如何獲取sftp版本的遠程服務器?
我被告知在命令行使用-vvv
,但我不能提供任何有關它的文檔。有沒有其他的選擇?我的服務器是基於Linux的。
我的另一個問題是:說兩臺服務器沒有安裝相同版本的SFTP,有沒有一種協議版本的協商,以確保他們'說同一種語言'?
要獲得遠程SSH版本,您可以telnet到ssh端口。遠程SSH服務器將發送其軟件版本字符串:
$ telnet localhost 22
Trying ::1...
Connected to localhost.
Escape character is '^]'.
SSH-2.0-OpenSSH_6.9
在SSH調試輸出,你會尋找這些行:
debug1: Local version string SSH-2.0-OpenSSH_6.9
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.9
第一行是您的本地客戶端的版本。第二行是遠程服務器的ssh協議和軟件版本。
你在這裏找的是「OpenSSH_6.9」的一部分。這告訴你遠程服務器是OpenSSH。實際的SFTP服務器幾乎肯定是該版本的OpenSSH附帶的sftp-server
程序。
如果你特別想要the SFTP protocol version下,SFTP命令行實用程序有一個「版本」命令,打印協商協議版本:
sftp> version
SFTP protocol version 3
您還可以通過運行「SFTP -vv」並期待得到它這條線的調試輸出:
debug2: Remote version: 3
注意,OpenSSH是迄今爲止最廣泛使用的SSH服務器,它實現了統一版本的SFTP 3.
我會補充說,沒有真正的OpenSSH調試輸出文檔。理解它的方法是download a copy of the source並找出哪些調試消息具有所需的信息。
你試過'-vvv'嗎?當你這樣做時,編輯你的Q來包含'sftp -vvv remUser @ remoteHost'的輸出(當然是annomized)。也許我們可以在該輸出中找到嵌入的版本信息。祝你好運。 – shellter
我無法做到這一點,因爲它必須在生產服務器上執行,我自己也無法訪問它。我會捅我們的系統管理員之一。 – JVerstry