我需要上传SCP文件。我在stackoverflow上找到了这个库http://code.google.com/p/commons-net-ssh/ 我下载.jar并添加到BuildPath,但如何添加用户名和密码? 我试过这个,但它不起作用。如果你有任何其他图书馆这样做,它会没事的。有什么帮助吗?
SSHClient ssh = new SSHClient();
//ssh.useCompression();
ssh.loadKnownHosts();
ssh.connect("localhost");
try {
ssh.authPublickey(System.getProperty("user.name"));
new SCPDownloadClient(ssh).copy("ten", "/tmp");
} finally {
ssh.disconnect();
}
答案 0 :(得分:1)
有两种解决方案:
您可以使用ssh-keygen
创建密钥对,而无需密码短语。使用authPublickey(java.lang.String username, java.lang.String... locations)
选择连接密钥。
您可以将密码保存在Java代码可以读取的文件中。
两种解决方案的安全性大致相同:完全取决于谁可以读取密码/密钥文件。只有运行Java代码的用户才能读取它。
答案 1 :(得分:0)
您可以使用authPassword
方法进行身份验证。
答案 2 :(得分:0)
SCPClient scp = conn.createSCPClient();
scp.put(localFileLoc,zipFileName,""/temp,"0777");
这有助于我使用SCP。我使用过ganymed-ssh2-build251beta1.jar
。