JSch.addIdentity 公钥参数的用途
Purpose of pubkey parameter of JSch.addIdentity
我指的是
public void addIdentity(String name,
byte[] prvkey,
byte[] pubkey,
byte[] passphrase)
throws JSchException
我试过使用它,无论我输入什么 pubkey
(不管长度或字符),只要 prvkey
匹配,就会建立连接.
这是正常行为吗?为什么还要请求 pubkey
?
经过更多的研究,似乎 pubkey
并没有被故意忽略,但它必须遵守某些规则才能被考虑在内,否则它似乎仍然只考虑 prvkey
.
当您将多个密码加密的密钥对加载到 JSch(或任何 SSH library/client)时,拥有未加密的 public 密钥特别有用。
有了未加密的 public 密钥,客户端 (JSch) 可以使用 public 密钥询问服务器是否识别该密钥。如果是这样,只有 JSch 才会要求提供密码来解密私钥。
如果您只有一个密钥或所有密钥都未加密,则无需指定 pubkey
(使用 null
)。
我指的是
public void addIdentity(String name,
byte[] prvkey,
byte[] pubkey,
byte[] passphrase)
throws JSchException
我试过使用它,无论我输入什么 pubkey
(不管长度或字符),只要 prvkey
匹配,就会建立连接.
这是正常行为吗?为什么还要请求 pubkey
?
经过更多的研究,似乎 pubkey
并没有被故意忽略,但它必须遵守某些规则才能被考虑在内,否则它似乎仍然只考虑 prvkey
.
当您将多个密码加密的密钥对加载到 JSch(或任何 SSH library/client)时,拥有未加密的 public 密钥特别有用。
有了未加密的 public 密钥,客户端 (JSch) 可以使用 public 密钥询问服务器是否识别该密钥。如果是这样,只有 JSch 才会要求提供密码来解密私钥。
如果您只有一个密钥或所有密钥都未加密,则无需指定 pubkey
(使用 null
)。