在Java中连接到主机后如何读取SSH密钥-sig对标题(用于生成SSH密码)?

时间:2016-10-15 11:30:29

标签: java ssh jsch

我希望在连接到java中的远程主机后读取SSH密钥-sig对标题(用于生成SSH密码)。我正在使用JSch客户端库进行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 ==

1 个答案:

答案 0 :(得分:1)

消息(您调用" SSH密钥-sig对标题")可以作为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](只有一个"提示"在这种情况下,但还有更多)。