/
usr
/
bin
/
Upload File
HOME
#! /usr/bin/python3 # # ssh-import-id - Authorize SSH public keys from trusted online identities # # Copyright (c) 2013 Casey Marshall <casey.marshall@gmail.com> # Copyright (c) 2013-16 Dustin Kirkland <dustin.kirkland@gmail.com> # # ssh-import-id 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, version 3. # # ssh-import-id 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 ssh-import-id. If not, see <http://www.gnu.org/licenses/>. import argparse import sys from ssh_import_id import * def main(): errors = [] try: os.umask(0o177) parser.options = parser.parse_args() keys = [] for userid in parser.options.userids: user_pieces = userid.split(':') if len(user_pieces) == 2: proto, username = user_pieces elif len(user_pieces) == 1: proto, username = DEFAULT_PROTO, userid else: die("Invalid user ID: [%s]" % (userid)) if parser.options.remove: k = remove_keys(proto, username) keys.extend(k) action = "Removed" else: k = import_keys(proto, username, parser.options.useragent) keys.extend(k) action = "Authorized" if len(k) == 0: errors.append(userid) logging.info("[%d] SSH keys [%s]" % (len(keys), action)) except (Exception,): e = sys.exc_info()[1] die("%s" % (str(e))) cleanup() if len(errors) > 0: die("No matching keys found for [%s]" % ','.join(errors)) os._exit(0) if __name__ == '__main__': main()