X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=src%2Fshare%2Fmh%2Fgen_key;h=44109bb98eddb255e8a589f1cae1f6befaab4b24;hb=69354c87864076343793fb270b296ccb89bf3759;hp=162a64e17795ff4a4bfcf6a5c2ddba9cf667200b;hpb=5b5a517e61fb5028aea6c2521524ccf2a377d822;p=monkeysphere.git diff --git a/src/share/mh/gen_key b/src/share/mh/gen_key index 162a64e..44109bb 100644 --- a/src/share/mh/gen_key +++ b/src/share/mh/gen_key @@ -13,19 +13,16 @@ gen_key() { +local hostName=$(hostname -f) 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." +# check for presense of a key +[ "$FINGERPRINT" ] && \ + failure "An OpenPGP host key already exists." # get options while true ; do @@ -34,68 +31,55 @@ 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" 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 private key output to file: ${MHDATADIR}/ssh_host_rsa_key" + +log debug "creating ssh public key..." +ssh-keygen -y -f "${MHDATADIR}/ssh_host_rsa_key" > "$HOST_KEY_PUB" +log info "SSH host public key output to file: $HOST_KEY_PUB" + +# export public key to file +gpg_host_export_to_ssh_file # show info about new key show_key