65 lines
2.0 KiB
Python
65 lines
2.0 KiB
Python
#! /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)
|