来自具有Java密钥库的Java程序的SCP
我需要将文件(例如csv文件)SCP到java程序中的另一台服务器。SCP的RSA密钥存储在java密钥库中 我还没有找到任何代码,允许一个这样做 有人能提供一些示例代码或关于如何做到这一点的想法吗 (我发现了一些使用id_rsa字符串的代码。但它们是不同的格式。尝试提取/转换为该格式很困难)以及一些有关将密钥从java密钥库转换为.pem文件的信息。然后您可以使用pem到SCP 试试图书馆。以下是SCP上载的示例:来自具有Java密钥库的Java程序的SCP,java,ssh,keystore,scp,Java,Ssh,Keystore,Scp,我需要将文件(例如csv文件)SCP到java程序中的另一台服务器。SCP的RSA密钥存储在java密钥库中 我还没有找到任何代码,允许一个这样做 有人能提供一些示例代码或关于如何做到这一点的想法吗 (我发现了一些使用id_rsa字符串的代码。但它们是不同的格式。尝试提取/转换为该格式很困难)以及一些有关将密钥从java密钥库转换为.pem文件的信息。然后您可以使用pem到SCP 试试图书馆。以下是SCP上载的示例: import net.schmizz.sshj.SSHClient; impo
import net.schmizz.sshj.SSHClient;
import net.schmizz.sshj.xfer.FileSystemFile;
import java.io.File;
import java.io.IOException;
/** This example demonstrates uploading of a file over SCP to the SSH server. */
public class SCPUpload {
public static void main(String[] args)
throws IOException, ClassNotFoundException {
SSHClient ssh = new SSHClient();
ssh.loadKnownHosts();
ssh.connect("localhost");
try {
ssh.authPublickey("/path/to/key.pem"));
// Present here to demo algorithm renegotiation - could have just put this before connect()
// Make sure JZlib is in classpath for this to work
ssh.useCompression();
final String src = System.getProperty("user.home") + File.separator + "test_file";
ssh.newSCPFileTransfer().upload(new FileSystemFile(src), "/tmp/");
} finally {
ssh.disconnect();
}
}
}
谢谢-我知道如何出口质子交换膜并使其工作。如果不做那一步,我似乎无法让它工作。也就是说,直接从密钥库。我们的开发人员似乎希望将所有密钥保存在密钥库中,以便于维护/安全。但是,我看到您提供的API有一个loadKeys(KeyPair kp)。我相信我可以通过编程从密钥库中提取密钥对。我将根据您的答案看看我能做些什么。此示例因net.schmizz.sshj.xfer.scp.SCPException而失败