ISSUE TYPE
COMPONENT NAME
CLOUDSTACK VERSION
OS / ENVIRONMENT
OS independent
SUMMARY
According to getPublicKeyFromKeyMaterial()@SSHKeysHelper.java, CloudStack only supports rsa and dss ssh public keys. It is better to accept ecdsa and ed25519.
public static String getPublicKeyFromKeyMaterial(String keyMaterial) {
if (!keyMaterial.contains(" "))
keyMaterial = new String(Base64.decodeBase64(keyMaterial.getBytes()));
if ((!keyMaterial.startsWith("ssh-rsa") && !keyMaterial.startsWith("ssh-dss")) || !keyMaterial.contains(" "))
return null;
String[] key = keyMaterial.split(" ");
if (key.length < 2)
return null;
return key[0].concat(" ").concat(key[1]);
}
STEPS TO REPRODUCE
Registering ed25519 ssh public key to CloudStack fails.
EXPECTED RESULTS
Succeeding registering ecdsa or ed25519 public keys.
ISSUE TYPE
COMPONENT NAME
CLOUDSTACK VERSION
OS / ENVIRONMENT
OS independent
SUMMARY
According to
getPublicKeyFromKeyMaterial()@SSHKeysHelper.java, CloudStack only supports rsa and dss ssh public keys. It is better to accept ecdsa and ed25519.STEPS TO REPRODUCE
Registering ed25519 ssh public key to CloudStack fails.
EXPECTED RESULTS
Succeeding registering ecdsa or ed25519 public keys.