====== SSH Key Management ====== Trying to automate key Management between Machines.\\ It is controlled from Database. Strictly ALPHA should not work or might kill your file #!/usr/bin/env python # -*- coding: utf-8 -*- """ Created on Fri Apr 13 10:08:10 2012 This script used to manage and manipulate .ssh/authorized_keys User home directory defined based on /etc/passwd and /etc/shadow @author: k2patel """ import pwd import fileinput import subprocess ## Customization Start pg_user = 'sshd' pg_pass = 'testing' pg_host = 'localhost' username = 'k2patel' ## Customization End def getdir( username ): user_info = pwd.getpwnam(username).pw_dir return user_info #strmatch = open(getdir('k2patel') + "/.ssh/match") for k in open(getdir('k2patel') + "/.ssh/match"): jusths = k.split() if jusths[0] == 'ssh-rsa': print jusths[1] else: print "Key Type MisMatch" #allkeys = open(getdir('k2patel') + "/.ssh/authorized_keys.BK") #fl = getdir('k2patel') + "/.ssh/authorized_keys.BK" #print fl try: for ukeys in fileinput.input(getdir('k2patel') + "/.ssh/authorized_keys.BK", inplace=0): nice = ukeys.split() # if jusths[1] is nice[1]: # print fileinput.lineno() if nice[0] == 'ssh-rsa': # print "Hash : " + nice[1] if jusths[1] == nice[1]: print "it is matching at " + str(fileinput.filelineno()) Player = file(getdir('k2patel') + "/.ssh/authorized_keys.BK", "r").readlines() del Player[fileinput.filelineno()-1] Player.append(jusths[0] + " " + jusths[1] + " " + username + "\n" ) file(getdir('k2patel') + "/.ssh/authorized_keys.BK", "w").writelines(Player) else: print "Key Type failed to match" fileinput.close() except subprocess.CalledProcessError as prit: print str(prit)