From e2c077709b0fb7768223487c40fd8b1f0d5bc300 Mon Sep 17 00:00:00 2001 From: Kai Takahashi Date: Wed, 4 Dec 2019 16:53:02 +0900 Subject: [PATCH] Add support for ecdsa and ed25519 public keys. Signed-off-by: Kai Takahashi --- .../src/main/java/com/cloud/utils/ssh/SSHKeysHelper.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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 f80baaf47a18..f25881ca09bd 100644 --- a/utils/src/main/java/com/cloud/utils/ssh/SSHKeysHelper.java +++ b/utils/src/main/java/com/cloud/utils/ssh/SSHKeysHelper.java @@ -88,7 +88,13 @@ 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(" ")) + if ((!keyMaterial.startsWith("ssh-rsa") + && !keyMaterial.startsWith("ssh-dss") + && !keyMaterial.startsWith("ecdsa-sha2-nistp256") + && !keyMaterial.startsWith("ecdsa-sha2-nistp384") + && !keyMaterial.startsWith("ecdsa-sha2-nistp521") + && !keyMaterial.startsWith("ssh-ed25519")) + || !keyMaterial.contains(" ")) return null; String[] key = keyMaterial.split(" ");