“服务器1”正在使用SSH读取和写入“服务器2”。
在JSch中,当我使用Java程序从“服务器1”到“服务器2”进行通信时,程序正在使用addIdentity
方法。这个方法使用“服务器1”的私钥,JSch不会发送给任何人(“服务器2”),我是对的吗?
很遗憾在addIdentity
方法中提到私钥。如果可能的话,请给我一些JSch相关的文档,让我更多地了解。
答案 0 :(得分:4)
您的理解是正确的。
.addIdentity
用于指定在将数据发送到远程服务器(以及解密传入数据)之前应使用哪些私钥对数据进行本地加密。私钥本身不会发送到任何地方。只有公钥。
请注意.addIdentity
加载密钥对(公钥和私钥)。即使您使用仅采用prvkey
路径的重载,JSch也会假定公钥文件具有相同的名称,只有.pub
扩展名;或者“私钥”文件实际上包含公钥和私钥。
有关详细信息,请参阅Public-key/asymmetric cryptography。
但请注意,密钥是您与远程服务器连接的帐户的私钥。它不是(不应该)本地计算机的私钥(即使该计算机恰好是[SSH]服务器)。