我需要将SCP文件(例如csv文件)发送到java程序中的另一台服务器。 SCP的RSA密钥存储在java密钥库中。
我无法找到允许其中任何人执行此操作的代码。
任何人都可以提供一些有关如何执行此操作的示例代码或想法吗?
(我发现了一些与id_rsa String一起使用的代码。但是它们的格式不同。并且试图提取/转换为该格式是很困难的)
答案 0 :(得分:1)
Here和here是有关将密钥从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();
}
}
}