From ad6825571dba2d3f0654f5822c00b2e7f898db09 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Fri, 18 Aug 2023 09:00:54 +0200 Subject: mod/ssh-keys-import: support ed25519 keys... ... with RouterOS 7.12beta1 --- doc/mod/ssh-keys-import.md | 7 ++++++- mod/ssh-keys-import.rsc | 3 ++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/doc/mod/ssh-keys-import.md b/doc/mod/ssh-keys-import.md index 410bb5a..cf28ee2 100644 --- a/doc/mod/ssh-keys-import.md +++ b/doc/mod/ssh-keys-import.md @@ -29,6 +29,11 @@ import that key: $SSHKeysImport "ssh-rsa AAAAB3Nza...QYZk8= user" admin; +Starting with RouterOS *7.12beta1* support for keys of type `ed25519` has +been added: + + $SSHKeysImport "ssh-ed25519 AAAAC3Nza...ZVugJT user" admin; + The third part of the key (`user` in this example) is inherited as `key-owner` in RouterOS. @@ -39,7 +44,7 @@ and import all the keys. The user given to the function can be overwritting from comments in the file. Create a file `keys.pub` with this content: ``` -ssh-rsa AAAAB3Nza...QYZk8= user@client +ssh-ed25519 AAAAC3Nza...3OcN8A user@client ssh-rsa AAAAB3Nza...ozyts= worker@station # user=example ssh-rsa AAAAB3Nza...GXQVk= person@host diff --git a/mod/ssh-keys-import.rsc b/mod/ssh-keys-import.rsc index dd02d16..170139d 100644 --- a/mod/ssh-keys-import.rsc +++ b/mod/ssh-keys-import.rsc @@ -50,6 +50,7 @@ :global EitherOr; :global LogPrintExit2; :global ParseKeyValueStore; + :global RequiredRouterOS; :global SSHKeysImport; :if ([ :len $FileName ] = 0 || [ :len $User ] = 0) do={ @@ -67,7 +68,7 @@ :local Line [ :pick $Keys 0 [ :find $Keys "\n" ] ]; :set Keys [ :pick $Keys ([ :find $Keys "\n" ] + 1) [ :len $Keys ] ]; :local Type [ :pick $Line 0 [ :find $Line " " ] ]; - :if ($Type = "ssh-rsa") do={ + :if (([ $RequiredRouterOS $0 "7.12beta1" ] = true && $Type = "ssh-ed25519") || $Type = "ssh-rsa") do={ $SSHKeysImport $Line $User; :set Continue true; } -- cgit v1.2.3-70-g09d2