#! /usr/bin/env python3.12 import subprocess, os def import_ssh_keys_to_agent(privat_key = str): try: run_add_key = subprocess.run( [ "/usr/bin/ssh-add","-q", privat_key], shell=False, text=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE, timeout=10,) except subprocess.TimeoutExpired: print("\n","Timeout, No Import :", privat_key) return False # print(run_add_key) if run_add_key.returncode == 0: return True else: return False def check_key_exist(ssh_pub=str): if not os.path.exists(ssh_pub): return False run_check_key = subprocess.run( [ "/usr/bin/ssh-add","-L"], shell=False, text=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE,) list_agent_pubs = str(run_check_key.stdout,encoding="utf-8").splitlines() read_input_pub = open(ssh_pub) READ_FILE_PUB = read_input_pub.read() count=0 for pub in list_agent_pubs: count = count +1 if READ_FILE_PUB == pub + "\n": return True return False if __name__ == "__main__": ssh_keys = [ "/home/jonnybravo/.ssh/ansible-test", "/home/jonnybravo/.ssh/blu", "/home/jonnybravo/.ssh/gitea", "/home/jonnybravo/.ssh/gitlll", ] for add_key in ssh_keys: if not os.path.exists(add_key): print("File", (add_key + ".pub"), "existiert nicht") else: if check_key_exist(ssh_pub=add_key + ".pub"): print(add_key, "ist bereits vorhanden") else: print(add_key, "wird hinzugefügt...") if import_ssh_keys_to_agent(privat_key=add_key): print("Wurde hinzugefügt :", add_key)