2016-09-10 61 views
3

作爲嘗試調試問題的一部分,我想知道哪個版本的sftp安裝在我嘗試推送文件的遠程服務器上。如何獲取sftp版本的遠程服務器?

我被告知在命令行使用-vvv,但我不能提供任何有關它的文檔。有沒有其他的選擇?我的服務器是基於Linux的。

我的另一個問題是:說兩臺服務器沒有安裝相同版本的SFTP,有沒有一種協議版本的協商,以確保他們'說同一種語言'?

+1

你試過'-vvv'嗎?當你這樣做時,編輯你的Q來包含'sftp -vvv remUser @ remoteHost'的輸出(當然是annomized)。也許我們可以在該輸出中找到嵌入的版本信息。祝你好運。 – shellter

+0

我無法做到這一點,因爲它必須在生產服務器上執行,我自己也無法訪問它。我會捅我們的系統管理員之一。 – JVerstry

回答

5

要獲得遠程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並找出哪些調試消息具有所需的信息。

相關問題