You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by di...@apache.org on 2020/04/04 23:45:18 UTC
[airavata-mft] branch master updated: Removing private key temp
file creation for SSH transport
This is an automated email from the ASF dual-hosted git repository.
dimuthuupe pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/airavata-mft.git
The following commit(s) were added to refs/heads/master by this push:
new 6e42fe4 Removing private key temp file creation for SSH transport
6e42fe4 is described below
commit 6e42fe4acf8c143dd0763e962121de77fa66c876
Author: Dimuthu Wannipurage <di...@gmail.com>
AuthorDate: Sat Apr 4 19:45:03 2020 -0400
Removing private key temp file creation for SSH transport
---
.../airavata/mft/transport/scp/SCPReceiver.java | 12 +++---------
.../apache/airavata/mft/transport/scp/SCPSender.java | 20 ++++++++------------
.../airavata/mft/transport/scp/SCPTransportUtil.java | 11 +++--------
3 files changed, 14 insertions(+), 29 deletions(-)
diff --git a/transport/scp-transport/src/main/java/org/apache/airavata/mft/transport/scp/SCPReceiver.java b/transport/scp-transport/src/main/java/org/apache/airavata/mft/transport/scp/SCPReceiver.java
index 41c01fe..194796a 100644
--- a/transport/scp-transport/src/main/java/org/apache/airavata/mft/transport/scp/SCPReceiver.java
+++ b/transport/scp-transport/src/main/java/org/apache/airavata/mft/transport/scp/SCPReceiver.java
@@ -53,19 +53,13 @@ public class SCPReceiver implements Connector {
SecretServiceGrpc.SecretServiceBlockingStub secretClient = SecretServiceClient.buildClient(secretServiceHost, secretServicePort);
SCPSecret scpSecret = secretClient.getSCPSecret(SCPSecretGetRequest.newBuilder().setSecretId(credentialToken).build());
- File privateKeyFile = File.createTempFile("id_rsa", "");
- BufferedWriter writer = new BufferedWriter(new FileWriter(privateKeyFile));
- writer.write(scpSecret.getPrivateKey());
- writer.close();
-
- privateKeyFile.deleteOnExit();
-
this.session = SCPTransportUtil.createSession(
scpResource.getScpStorage().getUser(),
scpResource.getScpStorage().getHost(),
scpResource.getScpStorage().getPort(),
- privateKeyFile.getPath(),
- scpSecret.getPassphrase());
+ scpSecret.getPrivateKey().getBytes(),
+ scpSecret.getPublicKey().getBytes(),
+ scpSecret.getPassphrase().equals("")? null : scpSecret.getPassphrase().getBytes());
}
public void destroy() {
diff --git a/transport/scp-transport/src/main/java/org/apache/airavata/mft/transport/scp/SCPSender.java b/transport/scp-transport/src/main/java/org/apache/airavata/mft/transport/scp/SCPSender.java
index b8506e8..c4f6280 100644
--- a/transport/scp-transport/src/main/java/org/apache/airavata/mft/transport/scp/SCPSender.java
+++ b/transport/scp-transport/src/main/java/org/apache/airavata/mft/transport/scp/SCPSender.java
@@ -56,21 +56,17 @@ public class SCPSender implements Connector {
SecretServiceGrpc.SecretServiceBlockingStub secretClient = SecretServiceClient.buildClient(secretServiceHost, secretServicePort);
SCPSecret scpSecret = secretClient.getSCPSecret(SCPSecretGetRequest.newBuilder().setSecretId(credentialToken).build());
- File privateKeyFile = File.createTempFile("id_rsa", "");
- BufferedWriter writer = new BufferedWriter(new FileWriter(privateKeyFile));
- writer.write(scpSecret.getPrivateKey());
- writer.close();
-
- logger.info("Creating a ssh session for {}@{}:{} with key {} and passphrase {}",
+ logger.info("Creating a ssh session for {}@{}:{}",
scpResource.getScpStorage().getUser(), scpResource.getScpStorage().getHost(),
- scpResource.getScpStorage().getPort(),
- privateKeyFile.getPath(),
- scpSecret.getPassphrase());
+ scpResource.getScpStorage().getPort());
- this.session = SCPTransportUtil.createSession(scpResource.getScpStorage().getUser(), scpResource.getScpStorage().getHost(),
+ this.session = SCPTransportUtil.createSession(
+ scpResource.getScpStorage().getUser(),
+ scpResource.getScpStorage().getHost(),
scpResource.getScpStorage().getPort(),
- privateKeyFile.getPath(),
- scpSecret.getPassphrase());
+ scpSecret.getPrivateKey().getBytes(),
+ scpSecret.getPublicKey().getBytes(),
+ scpSecret.getPassphrase().equals("")? null : scpSecret.getPassphrase().getBytes());
}
public void destroy() {
diff --git a/transport/scp-transport/src/main/java/org/apache/airavata/mft/transport/scp/SCPTransportUtil.java b/transport/scp-transport/src/main/java/org/apache/airavata/mft/transport/scp/SCPTransportUtil.java
index fd2f4d5..7cf159d 100755
--- a/transport/scp-transport/src/main/java/org/apache/airavata/mft/transport/scp/SCPTransportUtil.java
+++ b/transport/scp-transport/src/main/java/org/apache/airavata/mft/transport/scp/SCPTransportUtil.java
@@ -24,22 +24,17 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Properties;
+import java.util.UUID;
public class SCPTransportUtil {
private static final Logger logger = LoggerFactory.getLogger(SCPTransportUtil.class);
- public static Session createSession(String user, String host, int port, String keyFilePath, String keyPassword) throws Exception {
+ public static Session createSession(String user, String host, int port, byte[] pvtKey, byte[] pubKey, byte[] passphrase) throws Exception {
try {
JSch jsch = new JSch();
- if (keyFilePath != null) {
- if (keyPassword != null) {
- jsch.addIdentity(keyFilePath, keyPassword);
- } else {
- jsch.addIdentity(keyFilePath);
- }
- }
+ jsch.addIdentity(UUID.randomUUID().toString(), pvtKey, pubKey, passphrase);
Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");