Skip to content

ecdsa and ed25519 support for sshkeys #3705

@cl-k-takahashi

Description

@cl-k-takahashi
ISSUE TYPE
  • Improvement Request
COMPONENT NAME
API
CLOUDSTACK VERSION
master
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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions