public class FTP {
public static void main(String args[]){
JSch jsch = new JSch();
jsch.setKnownHosts("./known_hosts");
Path privateKeyPath = Paths.get("./id_dsa");
byte[] privateKey = Files.readAllBytes(privateKeyPath);
Path publicKeyPath = Paths.get("./id_dsa.pub");
byte[] publicKey = Files.readAllBytes(publicKeyPath);
// Either of the lines below work... Why?
// jsch.addIdentity("", privateKey, publicKey, null);
// or
jsch.addIdentity("", privateKey, null, null);
Session session = jsch.getSession("USER", "myHost.com", 22);
session.connect();
}
}
設置publicKey
到null
,不有所作爲,我可以連接兩種方式。這是爲什麼?JSCH addIdentity公鑰參數不有所作爲
看起來好像publicKey
沒有被使用,所以爲什麼要把它首先傳遞給addIdentity
?
@Kenster no,id_dsa是一個私鑰,id_dsa.pub是一個公鑰。沒有密碼 – Kam
@Kenster我的問題並不是關於公鑰的解釋。如果我在jsch.addIdentity的第三個參數(不是第四個參數)中傳遞null,它仍然可以工作。 – Kam
@kenster我更新了代碼。 – Kam