[ https://issues.apache.org/jira/browse/CAMEL-5242?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Hadrian Zbarcea updated CAMEL-5242: ----------------------------------- Affects Version/s: (was: Future) 2.9.2 > camel-jsch (a.k.a camel-scp) component doesn't support public-private key > based authentication > ---------------------------------------------------------------------------------------------- > > Key: CAMEL-5242 > URL: https://issues.apache.org/jira/browse/CAMEL-5242 > Project: Camel > Issue Type: Improvement > Components: camel-jsch > Affects Versions: 2.9.2 > Reporter: Mohammad Wrk > Assignee: Hadrian Zbarcea > Fix For: 2.9.3, 2.10.0 > > > Camel uses JSCH (http://www.jcraft.com/jsch/) library to support both SCP and > SFTP. This library supports public-private key based authentication using > com.jcraft.jsch.JSch.addIdentity method. However looks like Camel only > supports this feature for SFTP component (http://camel.apache.org/ftp2.html) > and there is no support for SCP (http://camel.apache.org/jsch.html)! > Taking into account the fact that > org.apache.camel.component.jsch.ScpConfiguration (version 2.9.2) already has > two attributes (privateKeyFile and privateKeyFilePassphrase) for collecting > the related data, I think the change for this improvement should be something > like : > org.apache.camel.component.jsch.ScpOperations.createSession(ScpConfiguration > config) { > ObjectHelper.notNull(config, "ScpConfiguration"); > try { > final JSch jsch = new JSch(); > // get from configuration > if (isNotEmpty(config.getCiphers())) { > LOG.debug("Using ciphers: {}", config.getCiphers()); > Hashtable<String, String> ciphers = new Hashtable<String, > String>(); > ciphers.put("cipher.s2c", config.getCiphers()); > ciphers.put("cipher.c2s", config.getCiphers()); > JSch.setConfig(ciphers); > } > //New code to handle public-private key based authentication > if (isNotEmpty(config.getPrivateKeyFile())) { > LOG.debug("Using private keyfile: {}", > config.getPrivateKeyFile()); > if (isNotEmpty(config.getPrivateKeyFilePassphrase())) { > jsch.addIdentity(config.getPrivateKeyFile(), > config.getPrivateKeyFilePassphrase()); > } else { > jsch.addIdentity(config.getPrivateKeyFile()); > } > } > ... -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira