# -*-shell-script-*- # This should be sourced by bash (though we welcome changes to make it POSIX sh compliant) # Monkeysphere host import-key subcommand # # The monkeysphere scripts are written by: # Jameson Rollins # Jamie McClelland # Daniel Kahn Gillmor # # They are Copyright 2008-2009 and are all released under the GPL, # version 3 or later. import_key() { local hostName local domain local userID hostName="$1" # use the default hostname if not specified if [ -z "$hostName" ] ; then hostName=$(hostname -f) # test that the domain is not obviously illegitimate domain=${foo##*.} case $domain in 'local'|'localdomain') failure "Host domain '$domain' is not legitimate. Aborting key import." ;; esac # test that there are at least two parts if (( $(echo "$hostName" | tr . ' ' | wc -w) < 2 )) ; then failure "Host name '$hostName' is not legitimate. Aborting key import." fi fi userID="ssh://${hostName}" # create host home mkdir -p "${MHDATADIR}" mkdir -p "${MHTMPDIR}" mkdir -p "${GNUPGHOME_HOST}" chmod 700 "${GNUPGHOME_HOST}" log verbose "importing ssh key..." # translate ssh key to a private key PEM2OPENPGP_USAGE_FLAGS=authenticate pem2openpgp "$userID" \ | gpg_host --import 2>&1 | log debug # load the new host fpr into the fpr variable. this is so we can # create the gpg pub key file. we have to do this from the secret key # ring since we obviously don't have the gpg pub key file yet, since # that's what we're trying to produce (see below). load_fingerprint_secret # export to gpg public key to file update_gpg_pub_file log info "host key imported:" # show info about new key show_key }