具有Java密钥库的Java程序中的SCP

时间:2014-08-22 09:07:25

标签: java ssh keystore scp

我需要将SCP文件(例如csv文件)发送到java程序中的另一台服务器。 SCP的RSA密钥存储在java密钥库中。

我无法找到允许其中任何人执行此操作的代码。

任何人都可以提供一些有关如何执行此操作的示例代码或想法吗?

(我发现了一些与id_rsa String一起使用的代码。但是它们的格式不同。并且试图提取/转换为该格式是很困难的)

1 个答案:

答案 0 :(得分:1)

Herehere是有关将密钥从java密钥库转换为.pem文件的一些信息。然后你可以使用pem到SCP。

试试sshj库。以下是SCP上传的示例:

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();
        }
    }
}