#!/usr/bin/env python # Copyright (C) 2013, 2014 Linaro Ltd. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . import os import linaro_ldap def grok_slave_format(user, keysets): fmt = 'command="/srv/linaro-git-tools/grok-shell slave %s",' \ 'no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty %s' tempstring = "" for keyset in keysets: tempstring = tempstring + (fmt % (user, keyset[1])) + "\n" return tempstring if __name__ == '__main__': keys_file = os.path.expanduser('~/.ssh/authorized_keys') keys_file_tmp = keys_file + '.tmp' result = linaro_ldap.get_users_and_keys(only_validated=True) with open(keys_file_tmp, 'w') as f: for user, keysets in result.iteritems(): f.write(grok_slave_format(user, keysets)) os.rename(keys_file_tmp, keys_file)