summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2021-06-20 18:31:07 +0200
committerGitHub <noreply@github.com>2021-06-20 18:31:07 +0200
commitab3be6ad4eac2fcb13a9f1faf33c8c19c9e4e252 (patch)
tree0fe3e95e6f558566a0b0b6813d7008814881e51c /src
parent3eda414cb86a4ed83ae0e370770a20f34a6067e3 (diff)
parent04a088bb2f96b6f5b00ff0acb4218850384d5a25 (diff)
downloadvyos-1x-ab3be6ad4eac2fcb13a9f1faf33c8c19c9e4e252.tar.gz
vyos-1x-ab3be6ad4eac2fcb13a9f1faf33c8c19c9e4e252.zip
Merge pull request #889 from erkin/current
T3506: loadkey: Add `generate public-key-command` command
Diffstat (limited to 'src')
-rwxr-xr-xsrc/op_mode/generate_public_key_command.py41
1 files changed, 41 insertions, 0 deletions
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..7a7b6c923
--- /dev/null
+++ b/src/op_mode/generate_public_key_command.py
@@ -0,0 +1,41 @@
+#!/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('save')
+print('exit')