X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=src%2Fshare%2Fmh%2Fgen_key;h=3b9a2697a60b3fb1786e12baa94b796ffd39d86b;hb=ea4d25a641c19dc66c6066f46070065e22d46d91;hp=162a64e17795ff4a4bfcf6a5c2ddba9cf667200b;hpb=5b5a517e61fb5028aea6c2521524ccf2a377d822;p=monkeysphere.git diff --git a/src/share/mh/gen_key b/src/share/mh/gen_key index 162a64e..3b9a269 100644 --- a/src/share/mh/gen_key +++ b/src/share/mh/gen_key @@ -13,19 +13,12 @@ gen_key() { +local hostName local keyType="RSA" local keyLength="2048" local keyUsage="auth" -local keyExpire -local hostName=$(hostname -f) +local keyExpire="0" local userID -local keyParameters -local fingerprint - -# check for presense of secret key -# FIXME: is this the proper test to be doing here? -fingerprint_server_key >/dev/null \ - && failure "An OpenPGP host key already exists." # get options while true ; do @@ -34,68 +27,54 @@ while true ; do keyLength="$2" shift 2 ;; - -e|--expire) - keyExpire="$2" - shift 2 - ;; *) if [ "$(echo "$1" | cut -c 1)" = '-' ] ; then failure "Unknown option '$1'. Type '$PGRM help' for usage." fi - hostName="$1" - shift; break ;; esac done +hostName=${1:-$(hostname -f)} userID="ssh://${hostName}" -# prompt about key expiration if not specified -keyExpire=$(get_gpg_expiration "$keyExpire") +# create host home +mkdir -p "$GNUPGHOME_HOST" +chmod 700 "$GNUPGHOME_HOST" -# set key parameters -keyParameters=\ -"Key-Type: $keyType +log debug "generating host key..." +gpg_host --batch --gen-key < "${SYSDATADIR}/ssh_host_rsa_key") -log info "SSH host private key output to file: ${SYSDATADIR}/ssh_host_rsa_key" -ssh-keygen -y -f "${SYSDATADIR}/ssh_host_rsa_key" > "${SYSDATADIR}/ssh_host_rsa_key.pub" -log info "SSH host public key output to file: ${SYSDATADIR}/ssh_host_rsa_key.pub" -gpg_host "--export-options export-minimal --armor --export 0x${fingerprint}\!" > "${SYSDATADIR}/ssh_host_rsa_key.pub.gpg" -log info "SSH host public key in OpenPGP form: ${SYSDATADIR}/ssh_host_rsa_key.pub.gpg" + gpg_host --export-secret-key "$HOST_FINGERPRINT" | \ + openpgp2ssh "$HOST_FINGERPRINT" > "${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