[ 
https://issues.apache.org/jira/browse/CLOUDSTACK-10213?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16317841#comment-16317841
 ] 

ASF GitHub Bot commented on CLOUDSTACK-10213:
---------------------------------------------

rhtyd closed pull request #2389: CLOUDSTACK-10213: Allow specify SSH key lengh
URL: https://github.com/apache/cloudstack/pull/2389
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/server/src/com/cloud/server/ManagementServerImpl.java 
b/server/src/com/cloud/server/ManagementServerImpl.java
index c855c34b60f..855a43e9f7a 100644
--- a/server/src/com/cloud/server/ManagementServerImpl.java
+++ b/server/src/com/cloud/server/ManagementServerImpl.java
@@ -696,6 +696,8 @@
 
     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
@@ -3045,7 +3047,7 @@ public String getConfigComponentName() {
 
     @Override
     public ConfigKey<?>[] getConfigKeys() {
-        return new ConfigKey<?>[] {vmPasswordLength};
+        return new ConfigKey<?>[] {vmPasswordLength, sshKeyLength};
     }
 
     protected class EventPurgeTask extends ManagedContextRunnable {
@@ -3577,7 +3579,7 @@ public SSHKeyPair createSSHKeyPair(final 
CreateSSHKeyPairCmd cmd) {
             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 39db5c46c1b..f80baaf47a1 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 @@ private static String toHexString(byte[] b) {
         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();
         }


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Allow specify SSH key lengh
> ---------------------------
>
>                 Key: CLOUDSTACK-10213
>                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-10213
>             Project: CloudStack
>          Issue Type: Improvement
>      Security Level: Public(Anyone can view this level - this is the 
> default.) 
>            Reporter: Dmytro Shevchenko
>
> SSH keys generated by the ACS are only 1024 bit (RSA). The common standard is 
> now at least 2048 bit.
> decompiled com.jcraft.jsch.KeyPair:
> {code:java}
>     public static KeyPair genKeyPair(JSch jsch, int type) throws 
> JSchException {
>         return genKeyPair(jsch, type, 1024);
>     }
>     public static KeyPair genKeyPair(JSch jsch, int type, int key_size) 
> throws JSchException {
>         KeyPair kpair = null;
>         ....
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to