JSch.addIdentity 的 pubkey 参数的用途
Posted
技术标签:
【中文标题】JSch.addIdentity 的 pubkey 参数的用途【英文标题】:Purpose of pubkey parameter of JSch.addIdentity 【发布时间】:2020-04-26 21:49:22 【问题描述】:我指的是
public void addIdentity(String name,
byte[] prvkey,
byte[] pubkey,
byte[] passphrase)
throws JSchException
我尝试使用它,无论我输入什么pubkey
(无论长度或字符),只要prvkey
匹配,就会建立连接。
这是正常行为吗?那为什么还要pubkey
呢?
经过一番研究,似乎pubkey
不是故意忽略的,但它必须尊重某些规则才能考虑,否则它似乎仍然只考虑prvkey
。
【问题讨论】:
【参考方案1】:当您将多个密码短语加密的密钥对加载到 JSch(或任何 SSH 库/客户端)中时,使用未加密的公钥特别有用。
拥有未加密的公钥,客户端(JSch)可以使用公钥询问服务器,它是否识别密钥。如果是这样,那么只有 JSch 会要求输入密码来解密私钥。
如果您只有一个密钥或所有密钥都未加密,则无需指定pubkey
(使用null
)。
【讨论】:
以上是关于JSch.addIdentity 的 pubkey 参数的用途的主要内容,如果未能解决你的问题,请参考以下文章
JSch SFTP 安全性与 session.setConfig("StrictHostKeyChecking", "no");
powershell:sign_and_send_pubkey:签名失败:代理拒绝操作