68 lines
1.8 KiB
Python
Executable File
68 lines
1.8 KiB
Python
Executable File
#! /usr/bin/env python3.13
|
|
import os
|
|
import subprocess
|
|
|
|
|
|
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/gitlab_ed25519",
|
|
]
|
|
|
|
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)
|