X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=src%2Fshare%2Fmh%2Fgen_key;h=96053bcd8677ff1802a98dea0628d2383509090c;hb=b55981fb8aa689aede58ed7ab4d8692c52b5c472;hp=162a64e17795ff4a4bfcf6a5c2ddba9cf667200b;hpb=bd249afe1f74e2dfc451f73a261d0dfb4a8b58ca;p=monkeysphere.git diff --git a/src/share/mh/gen_key b/src/share/mh/gen_key index 162a64e..96053bc 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,56 @@ 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 "${MHDATADIR}" +mkdir -p "${MHTMPDIR}" +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