JSch中的addIdentity是调用程序Server的私钥
addIdentity in JSch is private key of calling program's Server
"Server 1" 正在使用 SSH 读取和写入 "Server 2"。
- "Server 1" 拥有 "Server 1's" 私钥和 "Server 2" 的 public 密钥。
- "Server 2" 拥有 "Server 2's" 私钥和 "Server 1" 的 public 密钥。
在 JSch 中,当我使用 Java 程序从 "Server 1" 通信到 "Server 2" 时,该程序使用 addIdentity
方法。此方法使用 "Server 1's" 私钥,JSch 不会将其发送给任何人 ("Server 2"),对吗?
我对在 addIdentity
方法中提到私钥感到困惑。如果可能的话,请给我一些JSch相关的文档,这对我有更多的启发。
你的理解是正确的。
.addIdentity
用于指定在将数据发送到远程服务器之前应该使用哪个私钥在本地加密数据(以及解密传入数据)。私钥本身不会发送到任何地方。只有一个public键是。
请注意,.addIdentity
加载了一个密钥对(public 和私钥)。即使您使用仅采用 prvkey
路径的重载,JSch 也会假定 public 密钥文件具有相同的名称,只是 .pub
扩展名;或者 "private key" 文件实际上同时包含 public 和私钥。
有关详细信息,请阅读 Public-key/asymmetric cryptography。
但请注意,密钥是您连接到远程服务器的帐户的私钥。它不是(不应该是)本地机器的私钥(即使机器恰好是 [SSH] 服务器)。
"Server 1" 正在使用 SSH 读取和写入 "Server 2"。
- "Server 1" 拥有 "Server 1's" 私钥和 "Server 2" 的 public 密钥。
- "Server 2" 拥有 "Server 2's" 私钥和 "Server 1" 的 public 密钥。
在 JSch 中,当我使用 Java 程序从 "Server 1" 通信到 "Server 2" 时,该程序使用 addIdentity
方法。此方法使用 "Server 1's" 私钥,JSch 不会将其发送给任何人 ("Server 2"),对吗?
我对在 addIdentity
方法中提到私钥感到困惑。如果可能的话,请给我一些JSch相关的文档,这对我有更多的启发。
你的理解是正确的。
.addIdentity
用于指定在将数据发送到远程服务器之前应该使用哪个私钥在本地加密数据(以及解密传入数据)。私钥本身不会发送到任何地方。只有一个public键是。
请注意,.addIdentity
加载了一个密钥对(public 和私钥)。即使您使用仅采用 prvkey
路径的重载,JSch 也会假定 public 密钥文件具有相同的名称,只是 .pub
扩展名;或者 "private key" 文件实际上同时包含 public 和私钥。
有关详细信息,请阅读 Public-key/asymmetric cryptography。
但请注意,密钥是您连接到远程服务器的帐户的私钥。它不是(不应该是)本地机器的私钥(即使机器恰好是 [SSH] 服务器)。