2015-04-02 69 views
0

如何将RHEL linux盒子中的文件从另一个RHEL linux盒子没有密码,没有使用URI的Java用户名使用SCPClient?我知道如何做一个无密码的ssh,并且我可以在没有密码的情况下给SCP一个文件,但是我无法在没有用户名的情况下让它工作。Java中带有URI但不带密码和用户名的SCP

这里是我的猜测:

来源:文件:///home/username/temp.txt

目的地:SCP://@192.168.1.1:/首页/用户名/

+0

我可以想象很少有效的情况下,不需要SSH/SCP的密码(或密钥)... – SnakeDoc 2015-04-02 14:41:59

回答

0

你有没有试过scp://[email protected]:/home/username/

+0

我知道这样的作品。问题是,当我想要SCP时,我不知道“用户名”。 – Everlight 2015-04-02 14:41:01

+0

然后你不能SSH/SCP。 SSH/SCP无法单独确定公钥的使用。 – 2015-04-02 14:42:32

+0

@Everlight用户名是强制性的...... SCP通过SSH ...您正在登录到远程盒子。 – SnakeDoc 2015-04-02 14:42:41

0

根据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/"); 

为了我的目的,它安全地假设远程用户名与本地用户名相同。

相关问题