# -*-shell-script-*- # This should be sourced by bash (though we welcome changes to make it POSIX sh compliant) # Monkeysphere host gen-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. gen_key() { local hostName local keyType="RSA" local keyLength="2048" local keyUsage="auth" local keyExpire="0" local userID # get options while true ; do case "$1" in -l|--length) keyLength="$2" shift 2 ;; *) if [ "$(echo "$1" | cut -c 1)" = '-' ] ; then failure "Unknown option '$1'. Type '$PGRM help' for usage." fi break ;; esac done hostName=${1:-$(hostname -f)} userID="ssh://${hostName}" # create host home mkdir -p "${MHDATADIR}" mkdir -p "${MHTMPDIR}" mkdir -p "${GNUPGHOME_HOST}" chmod 700 "${GNUPGHOME_HOST}" log debug "generating host key..." gpg_host --batch --gen-key < "${MHDATADIR}/ssh_host_rsa_key") log info "SSH host secret key file: ${MHDATADIR}/ssh_host_rsa_key" # export the host public key to the monkeysphere ssh pub key file log debug "creating ssh public key file..." ssh-keygen -y -f "${MHDATADIR}/ssh_host_rsa_key" > "$HOST_KEY_PUB" log info "SSH host public key file: $HOST_KEY_PUB" # export to gpg public key to file create_gpg_pub_file # show info about new key show_key }