JSch 中的 addIdentity 是调用程序服务器的私钥



服务器1正在使用SSH对服务器2进行读写操作。

  • "服务器1"拥有"服务器1"的私钥和"服务器2"的公钥。
  • "服务器2"拥有"服务器2"的私钥和"服务器1"的公钥。

在JSch中,当我使用Java程序从"Server 1"通信到"Server 2"时,该程序使用addIdentity方法。这种方法是使用"服务器1的"私钥和JSch不会将此发送给任何人("服务器2"),我是对的吗?

我对在addIdentity方法中提到私钥感到困惑。如果可能的话,请给我一些JSch相关的文件,给我更多的启发。

你的理解是正确的。

.addIdentity用于指定在将数据发送到远程服务器之前应该使用什么私钥来本地加密数据(并解密传入数据)。私钥本身不会发送到任何地方。只有一个公钥。

注意,.addIdentity加载一个密钥对(公钥和私钥)。即使您使用只接受prvkey路径的重载,JSch也会假设公钥文件具有相同的名称,只是.pub扩展名;或者"私钥"文件实际上包含公钥和私钥。


详细信息,请参阅公钥/非对称加密。


不过请注意,该密钥是您连接到远程服务器的帐户的私钥。它不是(不应该是)本地机器的私钥(即使机器恰好是[SSH]服务器)

相关内容

最新更新