2016-10-15 35 views
1

我想在連接到java中的遠程主機後讀取SSH密鑰對信號對橫幅(用於生成SSH密碼)。我正在使用JSch客戶端庫進行SSH連接。如何在連接到java中的主機後讀取SSH密鑰 - sig對橫幅(用於生成SSH密碼)?

在主機上進行某些操作後,SSH密碼發生變化,因此每次需要從key-sig對生成一個新的SSH密碼才能登錄。

有沒有一種方法可以以編程方式閱讀橫幅?

以下是在嘗試通過客戶端控制檯(PuTTY)進行SSH時提供密碼提示的key-sig對橫幅片段。

NbwDZIAGjGS90zisB + jY9Kqrmu67PyMwas6S6jY68f + QL4l + TJDyHWUTGtzluflwY + Z/bHn0mXtdIkgxsoiVm5nCnNi0viMUKq/dPygXEZ0uDma9Co0WHI25UNLn525pNSuT1At5wTEEinH7xKiypIKDNVxxeprshtsd4rcirTUQveTBEbAgABJtzHrSNHmqs2Rui4NbWRqFDabft4uID6qwtl5wxAoNhh0Z9FT1r3kCK0FoLxcp9nlyQ6kD2rmp1sQG1SvQky2ATa9sD + ZBBAhlvwbOns5fWRE8A + ElQtkvyB8IxCS59cWa8T5rXm7G57x9uExEn57Vn3ZBuKP9Tg == bS6VdF5I167P03QMkM88k2cwS9KtyEfgT6Ff2e0iIvxdBMSKq453953J // vuriZk + mKjiEX0/RzrQSVIAzOYXFTtsZrIh7ER2IS0LoaXQ5izk4aobVq3BtiU + EknM3Qcy7IpVbwmQ7ZmCmjtOL +的Ux/n8vEDLYdk8dVeFJpzp4s53MrRkm4RC9yHgROW6HJxYscmQa + xah5ymRJyC2mt4aFfeQjAUZIEBhncLQge6nGEMybXmail1bgqhinE5xem + K6M2Ad3 + 0ahhW7NflWC4LjweTSHfsItfDwsb8i280LuYuw6w07LTadkn40AfpnVXOiFM + eUpUeIkw16RzduCew ==

+0

什麼是「SSH密鑰 - 信號對橫幅」?你是否在鍵盤交互式認證提示中得到這個? –

+0

是的。我在交互式SSH客戶端(putty)中得到這個,當我手動登錄到主機。橫幅顯示在密碼提示處。 key-sig對需要爲主機生成ssh密碼。 – user3058854

回答

1

該消息(稱爲「SSH密鑰 - 信號對橫幅」)可以作爲SSH身份驗證橫幅或作爲SSH鍵盤交互式身份驗證提示。它不能是密碼驗證提示,因爲這不是由SSH服務器定製的。

在這兩種情況下,要捕獲消息,請執行UserInfo interface。並使用Session.setUserInfo method將其與Session實例相關聯。


快速測試服務器是如何發送郵件,請嘗試使用WinSCP SFTP client連接,並檢查它是如何顯示的消息。

  • banner

    enter image description here

  • 或作爲keyboard interactive prompt

    enter image description here

    「服務器提示」的稱號就是你在name得到。 instruction將顯示在「使用鍵盤交互式身份驗證」(此提示中沒有「說明」)。而「挑戰是......」prompt[0](在這種情況下只有一個「提示」,但可以有更多)。