This is an automated email from the ASF dual-hosted git repository.

rohit pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cloudstack.git


The following commit(s) were added to refs/heads/master by this push:
     new 0d0fa5e  CLOUDSTACK-10213: Allow specify SSH key lengh (#2389)
0d0fa5e is described below

commit 0d0fa5e3066300ff59a2e1680e5f15e5d83b78cb
Author: Dmytro Shevchenko <shevchenko_dmi...@ukr.net>
AuthorDate: Tue Jan 9 08:46:37 2018 +0200

    CLOUDSTACK-10213: Allow specify SSH key lengh (#2389)
    
    SSH keys generated by the ACS are only 1024 bit (RSA). The common standard 
is now at least 2048 bit.
---
 server/src/com/cloud/server/ManagementServerImpl.java      | 6 ++++--
 utils/src/main/java/com/cloud/utils/ssh/SSHKeysHelper.java | 4 ++--
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/server/src/com/cloud/server/ManagementServerImpl.java 
b/server/src/com/cloud/server/ManagementServerImpl.java
index 82a3752..cfc94e2 100644
--- a/server/src/com/cloud/server/ManagementServerImpl.java
+++ b/server/src/com/cloud/server/ManagementServerImpl.java
@@ -696,6 +696,8 @@ public class ManagementServerImpl extends ManagerBase 
implements ManagementServe
 
     static final ConfigKey<Integer> vmPasswordLength = new 
ConfigKey<Integer>("Advanced", Integer.class, "vm.password.length", "6",
                                                                                
       "Specifies the length of a randomly generated password", false);
+    static final ConfigKey<Integer> sshKeyLength = new 
ConfigKey<Integer>("Advanced", Integer.class, "ssh.key.length",
+            "2048", "Specifies custom SSH key length (bit)", true, 
ConfigKey.Scope.Global);
     @Inject
     public AccountManager _accountMgr;
     @Inject
@@ -3051,7 +3053,7 @@ public class ManagementServerImpl extends ManagerBase 
implements ManagementServe
 
     @Override
     public ConfigKey<?>[] getConfigKeys() {
-        return new ConfigKey<?>[] {vmPasswordLength};
+        return new ConfigKey<?>[] {vmPasswordLength, sshKeyLength};
     }
 
     protected class EventPurgeTask extends ManagedContextRunnable {
@@ -3583,7 +3585,7 @@ public class ManagementServerImpl extends ManagerBase 
implements ManagementServe
             throw new InvalidParameterValueException("A key pair with name '" 
+ cmd.getName() + "' already exists.");
         }
 
-        final SSHKeysHelper keys = new SSHKeysHelper();
+        final SSHKeysHelper keys = new SSHKeysHelper(sshKeyLength.value());
 
         final String name = cmd.getName();
         final String publicKey = keys.getPublicKey();
diff --git a/utils/src/main/java/com/cloud/utils/ssh/SSHKeysHelper.java 
b/utils/src/main/java/com/cloud/utils/ssh/SSHKeysHelper.java
index 39db5c4..f80baaf 100644
--- a/utils/src/main/java/com/cloud/utils/ssh/SSHKeysHelper.java
+++ b/utils/src/main/java/com/cloud/utils/ssh/SSHKeysHelper.java
@@ -43,9 +43,9 @@ public class SSHKeysHelper {
         return sb.toString();
     }
 
-    public SSHKeysHelper() {
+    public SSHKeysHelper(Integer keyLength) {
         try {
-            keyPair = KeyPair.genKeyPair(new JSch(), KeyPair.RSA);
+            keyPair = KeyPair.genKeyPair(new JSch(), KeyPair.RSA, keyLength);
         } catch (JSchException e) {
             e.printStackTrace();
         }

-- 
To stop receiving notification emails like this one, please contact
['"commits@cloudstack.apache.org" <commits@cloudstack.apache.org>'].

Reply via email to