From a2db767cccca2c78c1dcc869157018e8d923ec08 Mon Sep 17 00:00:00 2001
From: erkin <e.altunbas@vyos.io>
Date: Sun, 20 Jun 2021 12:54:12 +0300
Subject: T3506: loadkey: Add `generate public-key-command` command

---
 src/op_mode/generate_public_key_command.py | 40 ++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)
 create mode 100755 src/op_mode/generate_public_key_command.py

(limited to 'src/op_mode')

diff --git a/src/op_mode/generate_public_key_command.py b/src/op_mode/generate_public_key_command.py
new file mode 100755
index 000000000..5f9133bf1
--- /dev/null
+++ b/src/op_mode/generate_public_key_command.py
@@ -0,0 +1,40 @@
+#!/usr/bin/env python3
+#
+# Copyright (C) 2021 VyOS maintainers and contributors
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 or later as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+import os
+import sys
+import urllib.parse
+
+import vyos.remote
+
+def get_key(path):
+    url = urllib.parse.urlparse(path)
+    if url.scheme == 'file' or url.scheme == '':
+        with open(os.path.expanduser(path), 'r') as f:
+            key_string = f.read()
+    else:
+        key_string = vyos.remote.get_remote_config(path)
+    return key_string.split()
+
+username = sys.argv[1]
+algorithm, key, identifier = get_key(sys.argv[2])
+
+print('# To add this key as an embedded key, run the following commands:')
+print('configure')
+print(f'set system login user {username} authentication public-keys {identifier} key {key}')
+print(f'set system login user {username} authentication public-keys {identifier} type {algorithm}')
+print('commit')
+print('exit')
-- 
cgit v1.2.3