From 531c336c988e18146d49f5210f006256323c2070 Mon Sep 17 00:00:00 2001 From: JonnyBravo Date: Wed, 25 Jan 2023 13:23:03 +0100 Subject: [PATCH] first commit --- .../Was soll passieren.txt | 40 ++++++++++ .../kde_autostart_sshagent_folder_create.py | 75 +++++++++++++++++++ 2 files changed, 115 insertions(+) create mode 100755 add_start_ssh_agent_on_kde/Was soll passieren.txt create mode 100755 add_start_ssh_agent_on_kde/kde_autostart_sshagent_folder_create.py diff --git a/add_start_ssh_agent_on_kde/Was soll passieren.txt b/add_start_ssh_agent_on_kde/Was soll passieren.txt new file mode 100755 index 0000000..c012d8e --- /dev/null +++ b/add_start_ssh_agent_on_kde/Was soll passieren.txt @@ -0,0 +1,40 @@ +Ordner anlegen + +mkdir -p ~/.config/autostart-scripts/ ok +mkdir -p ~/.config/plasma-workspace/shutdown/ ok +mkdir -p ~/.config/plasma-workspace/env/ ok + +Skript erstelle : ~/.config/autostart-scripts/ssh-add.sh + +#! /bin/zsh +sleep 10 +SSH_ASKPASS=/usr/bin/ksshaskpass +export SSH_ASKPASS +ssh-add ~/.ssh/id_ed25519 + +Skript erstellen ~/.config/plasma-workspace/shutdown/ssh-agent-shutdown.sh + +#!/bin/sh +[ -z "$SSH_AGENT_PID" ] || eval "$(ssh-agent -k)" + +Skript erstelle ~/.config/plasma-workspace/env/ssh-agent-startup.sh + +#!/bin/sh +[ -n "$SSH_AGENT_PID" ] || eval "$(ssh-agent -s)" +SSH_ASKPASS=/usr/bin/ksshaskpass +export SSH_ASKPASS + +Rechte zum ausführen + +chmod +x ~/.config/autostart-scripts/ssh-add.sh +chmod +x ~/.config/plasma-workspace/shutdown/ssh-agent-shutdown.sh +chmod +x ~/.config/plasma-workspace/env/ssh-agent-startup.sh + + +sudo vi /etc/profile.d/ksshaskpass.sh + +#!/bin/bash +export SSH_ASKPASS=/usr/bin/ksshaskpass + +sudo chmod +x /etc/profile.d/ksshaskpass.sh + diff --git a/add_start_ssh_agent_on_kde/kde_autostart_sshagent_folder_create.py b/add_start_ssh_agent_on_kde/kde_autostart_sshagent_folder_create.py new file mode 100755 index 0000000..7534834 --- /dev/null +++ b/add_start_ssh_agent_on_kde/kde_autostart_sshagent_folder_create.py @@ -0,0 +1,75 @@ +#! /usr/bin/env Python3 + +import os, stat + +def create_folder (check_folders = list): + exist_dict = [] + for folder in check_folders: + if os.path.isdir(folder) is True: + exist_dict.append({"name": folder, "status": "existiert bereits"}) + else: + os.makedirs(folder, exist_ok=True) + exist_dict.append({"name": folder, "status": "wurde angelegt"}) + return exist_dict + +def read_sshkeys(ssh_folder = str): + key_liste = [] + for root, dirs, files in os.walk(ssh_folder, topdown=False): + for name in files: + FullPATH = str(os.path.join(root, name)) + if FullPATH.endswith(".pub") is False and FullPATH.endswith("known_hosts") is False and FullPATH.endswith("authorized_keys") is False: + key_liste.append(FullPATH) + return key_liste + + +def create_scripts_addkeys(script_folder = str, keys = list): + try: + script_file = script_folder + "/ssh-add.sh" + with open(file=script_file, mode="w") as script: + print("""#! /bin/bash\nsleep 10\nSSH_ASKPASS=/usr/bin/ksshaskpass\nexport SSH_ASKPASS\nssh-add {ssh_keys} + """.format(ssh_keys=" ".join(keys)), file=script) + + os.chmod(path=script_file, mode=stat.S_IRWXU) + except: + raise PermissionError("Keine Rechte die Datei " + script_file + " zu erstellen") + else: + return print(script_file, "erstellt",sep=" ") + +def create_scripts_shutdown(script_folder = str): + try: + script_file = script_folder + "/ssh-agent-shutdown.sh" + with open(file=script_file, mode="w" ) as script: + print("""#!/bin/sh\n[ -z "$SSH_AGENT_PID" ] || eval "$(ssh-agent -k)" """, file=script) + os.chmod(path=script_file, mode=stat.S_IRWXU) + except: + raise PermissionError("Keine Rechte die Datei " + script_file + " zu erstellen") + else: + return print(script_file, "erstellt",sep=" ") + +def create_scripts_startup(script_folder = str): + try: + script_file = script_folder + "/ssh-agent-shartup.sh" + with open(file=script_file, mode="w" ) as script: + print("""#!/bin/sh\n[ -z "$SSH_AGENT_PID" ] || eval "$(ssh-agent -s)"\nSSH_ASKPASS=/usr/bin/ksshaskpass\nexport SSH_ASKPASS""", file=script) + os.chmod(path=script_file, mode=stat.S_IRWXU) + except: + raise PermissionError("Keine Rechte die Datei " + script_file + " zu erstellen") + else: + return print(script_file, "erstellt",sep=" ") + + +def main(): + kde_folders = [ + os.environ["HOME"] + "/.config/autostart-scripts", + os.environ["HOME"] + "/.config/plasma-workspace/shutdown", + os.environ["HOME"] + "/.config/plasma-workspace/env" + ] + + for test in create_folder(check_folders=kde_folders): + print("Folder:" + test["name"] + " status: " + test["status"]) + #print(read_sshkeys(os.environ["HOME"] + "/.ssh")) + create_ssh_script_addkey = create_scripts_addkeys(kde_folders[0], read_sshkeys(os.environ["HOME"] + "/.ssh") ) + create_ssh_script_shutdown = create_scripts_shutdown(script_folder=kde_folders[1]) + create_ssh_script_startup = create_scripts_startup(script_folder=kde_folders[2]) + +main()