我指的是
public void addIdentity(String name,
byte[] prvkey,
byte[] pubkey,
byte[] passphrase)
throws JSchException
我尝试使用它,无论我以
pubkey
作为输入(无论长度或字符如何),只要prvkey
匹配,连接都会建立。这是正常现象吗?为何还要求
pubkey
?经过更多研究,似乎没有故意忽略
pubkey
,但是必须遵守某些规则才能考虑,否则似乎仍然仅考虑prvkey
。 最佳答案
当您将多个密码短语加密的密钥对加载到JSch(或任何SSH库/客户端)中时,使用未加密的公共(public)密钥特别有用。
客户端(JSch)具有未加密的公共(public)密钥,可以使用公共(public)密钥询问服务器是否识别出该密钥。如果是这样,则只有JSch才会要求密码短语来解密私钥。
如果只有一个密钥,或者所有密钥都未加密,则无需指定pubkey
(使用null
)。