X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=src%2Fshare%2Fmh%2Fimport_key;h=6394ad734fec1e601f92d1362329ae9ba51f06ad;hb=c073811aa573d0e3486c39ed9514c46e0a7a077f;hp=6f12b7fd1381c6b2a1a9e1a6ee769981fd0b4038;hpb=5eab477a9755178abf56eeba5f658db882611eec;p=monkeysphere.git diff --git a/src/share/mh/import_key b/src/share/mh/import_key index 6f12b7f..6394ad7 100644 --- a/src/share/mh/import_key +++ b/src/share/mh/import_key @@ -13,15 +13,17 @@ import_key() { +local sshKeyFile local hostName local domain local userID -hostName="$1" +sshKeyFile="$1" +hostName="$2" # use the default hostname if not specified if [ -z "$hostName" ] ; then - hostName=$(hostname -f) + hostName=$(hostname -f) || failure "Could not determine hostname." # test that the domain is not obviously illegitimate domain=${foo##*.} case $domain in @@ -39,14 +41,22 @@ 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 +# import ssh key to a private key +if [ -z "$sshKeyFile" ] ; then + failure "Must specify ssh key file to import, or specify '-' for stdin." +elif [ "$sshKeyFile" = '-' ] ; then + log verbose "importing ssh key from stdin..." + PEM2OPENPGP_USAGE_FLAGS=authenticate pem2openpgp "$userID" \ + | gpg_host --import +else + log verbose "importing ssh key from file '$sshKeyFile'..." + PEM2OPENPGP_USAGE_FLAGS=authenticate pem2openpgp "$userID" \ + <"$sshKeyFile" \ + | gpg_host --import +fi # 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 @@ -54,15 +64,11 @@ PEM2OPENPGP_USAGE_FLAGS=authenticate pem2openpgp "$userID" \ # that's what we're trying to produce (see below). load_fingerprint_secret -# set ultimate owner trust on the newly imported key -printf "%s:6:\n" "$HOST_FINGERPRINT" | gpg_host --import-ownertrust - -# update trustdb -gpg_host --check-trustdb - # export to gpg public key to file update_gpg_pub_file +log info "host key imported:" + # show info about new key show_key