Java中带有URI但不带密码和用户名的SCP
问题描述:
如何将RHEL linux盒子中的文件从另一个RHEL linux盒子没有密码,没有使用URI的Java用户名使用SCPClient?我知道如何做一个无密码的ssh,并且我可以在没有密码的情况下给SCP一个文件,但是我无法在没有用户名的情况下让它工作。Java中带有URI但不带密码和用户名的SCP
这里是我的猜测:
来源:文件:///home/username/temp.txt
目的地:SCP://@192.168.1.1:/首页/用户名/
答
根据SCPClient页面我会说这是不可能的。所以,最好的方法是做
SCPClient scpc = new SCPClient
scpc.setRemoteHost("192.168.1.1");
scpc.getValidator().setHostValidationEnabled(false);
scpc.setAuthentication("/home/username/.ssh/id_rsa", System.getProperty("user.name"), "");
scpc.connect();
scpc.put("file:///home/username/temp.txt", "scp://" + System.getProperty("user.name") + "@192.168.1.1:/home/username/");
为了我的目的,它安全地假设远程用户名与本地用户名相同。
我可以想象很少有效的情况下,不需要SSH/SCP的密码(或密钥)... – SnakeDoc 2015-04-02 14:41:59