在SSH傳輸層協議規範http://www.ietf.org/rfc/rfc4253.txt的「4.2。協議版本交換」部分,它說:「當連接建立後,雙方必須發送一個標識字符串。」。哪一方將在SSH傳輸層協議中啓動版本協商?
但它沒有定義哪一方應該啓動這個過程,服務器端還是客戶端?
這裏有一些意見,
在http://www.cisco.com/web/about/ac123/ac147/archived_issues/ipj_12-4/124_ssh.html, 「圖2:SSH傳輸層協議分組交換」,客戶端發起的交換過程。
我嘗試使用JSCH作爲客戶端來連接服務器,這裏是快照。服務器端首先發送SSH協議版本。
這裏是一個問題,無論是JSCH和SSH服務器不發送協議版本。 TCP連接在程序包93,94,95中設置。5秒後,服務器端關閉程序包99中的連接。
你能幫忙弄清楚爲什麼客戶端和服務器不發送協議版?非常感謝!
問候, 喬伊
正確。我檢查了版本jsch-0.1.37,並在Session.java中,它將首先發送V_C,然後等待服務器的版本。而在jsch-0.1.20中,它將首先接收服務器的版本,然後發送客戶端版本。所以我會用jsch-0.1.20的新版本替換jsch。謝謝。 – 2013-04-26 06:07:16