diff options
-rwxr-xr-x | src/monkeysphere-host | 39 | ||||
-rwxr-xr-x | src/subcommands/mh/add-hostname | 6 | ||||
-rwxr-xr-x | src/subcommands/mh/add-revoker | 4 | ||||
-rwxr-xr-x | src/subcommands/mh/diagnostics | 7 | ||||
-rwxr-xr-x | src/subcommands/mh/extend-key | 4 | ||||
-rwxr-xr-x | src/subcommands/mh/gen-key | 16 | ||||
-rwxr-xr-x | src/subcommands/mh/import-key | 2 | ||||
-rwxr-xr-x | src/subcommands/mh/publish-key | 4 | ||||
-rwxr-xr-x | src/subcommands/mh/revoke-hostname | 6 | ||||
-rwxr-xr-x | src/subcommands/mh/revoke-key | 4 | ||||
-rwxr-xr-x | src/subcommands/mh/show-key | 37 |
11 files changed, 65 insertions, 64 deletions
diff --git a/src/monkeysphere-host b/src/monkeysphere-host index 19ab5fc..1f68256 100755 --- a/src/monkeysphere-host +++ b/src/monkeysphere-host @@ -20,11 +20,6 @@ export SYSSHAREDIR SYSDATADIR=${MONKEYSPHERE_SYSDATADIR:-"/var/lib/monkeysphere/host"} export SYSDATADIR -# monkeysphere temp directory, in sysdatadir to enable atomic moves of -# authorized_keys files -MSTMPDIR="${SYSDATADIR}/tmp" -export MSTMPDIR - # UTC date in ISO 8601 format if needed DATE=$(date -u '+%FT%T') @@ -53,13 +48,12 @@ subcommands: publish-key (p) publish server host key to keyserver expert - import-key (i) NAME[:PORT] import existing ssh key to gpg + import-key (i) [NAME[:PORT]] import existing ssh key to gpg --keyfile (-f) FILE key file to import --expire (-e) EXPIRE date to expire - gen-key (g) NAME[:PORT] generate gpg key for the host + gen-key (g) [NAME[:PORT]] generate gpg key for the host --length (-l) BITS key length in bits (2048) --expire (-e) EXPIRE date to expire - --revoker (-r) FINGERPRINT add a revoker diagnostics (d) monkeysphere host status version (v) show version number @@ -119,6 +113,35 @@ check_host_keyring() { || failure "You don't appear to have a Monkeysphere host key on this server. Please run 'monkeysphere-server gen-key' first." } +# show info about the host key +show_key() { + local fingerprintPGP + local fingerprintSSH + local ret=0 + + # FIXME: you shouldn't have to be root to see the host key fingerprint + if is_root ; then + check_host_keyring + fingerprintPGP=$(fingerprint_server_key) + gpg_authentication "--fingerprint --list-key --list-options show-unusable-uids $fingerprintPGP" 2>/dev/null + echo "OpenPGP fingerprint: $fingerprintPGP" + else + log info "You must be root to see host OpenPGP fingerprint." + ret='1' + fi + + if [ -f "${SYSDATADIR}/ssh_host_rsa_key.pub" ] ; then + fingerprintSSH=$(ssh-keygen -l -f "${SYSDATADIR}/ssh_host_rsa_key.pub" | \ + awk '{ print $1, $2, $4 }') + echo "ssh fingerprint: $fingerprintSSH" + else + log info "SSH host key not found." + ret='1' + fi + +return $ret +} + ######################################################################## # MAIN ######################################################################## diff --git a/src/subcommands/mh/add-hostname b/src/subcommands/mh/add-hostname index fc1ae96..7726a29 100755 --- a/src/subcommands/mh/add-hostname +++ b/src/subcommands/mh/add-hostname @@ -12,6 +12,8 @@ # add hostname user ID to server key +add_hostname() { + local userID local fingerprint local tmpuidMatch @@ -61,7 +63,7 @@ if echo "$adduidCommand" | \ # update the trustdb for the authentication keyring gpg_authentication "--check-trustdb" - show_server_key + show_key echo echo "NOTE: User ID added to key, but key not published." @@ -69,3 +71,5 @@ if echo "$adduidCommand" | \ else failure "Problem adding user ID." fi + +} diff --git a/src/subcommands/mh/add-revoker b/src/subcommands/mh/add-revoker index 8783cd1..8c4651e 100755 --- a/src/subcommands/mh/add-revoker +++ b/src/subcommands/mh/add-revoker @@ -12,5 +12,9 @@ # add a revoker to the host key +add_revoker() { + # FIXME: implement! failure "not implemented yet!" + +} diff --git a/src/subcommands/mh/diagnostics b/src/subcommands/mh/diagnostics index f411e06..5b04b14 100755 --- a/src/subcommands/mh/diagnostics +++ b/src/subcommands/mh/diagnostics @@ -10,7 +10,10 @@ # They are Copyright 2008, and are all released under the GPL, version 3 # or later. -# * check on the status and validity of the key and public certificates +# check on the status and validity of the key and public certificates + +diagnostics() { + local seckey local keysfound local curdate @@ -177,3 +180,5 @@ if [ "$problemsfound" -gt 0 ]; then else echo "Everything seems to be in order!" fi + +} diff --git a/src/subcommands/mh/extend-key b/src/subcommands/mh/extend-key index 755fe13..8f1ecc2 100755 --- a/src/subcommands/mh/extend-key +++ b/src/subcommands/mh/extend-key @@ -12,6 +12,8 @@ # extend the lifetime of a host key: +extend_key() { + local fpr=$(fingerprint_server_key) local extendTo="$1" @@ -27,3 +29,5 @@ EOF echo echo "NOTE: Host key expiration date adjusted, but not yet published." echo "Run '$PGRM publish-key' to publish the new expiration date." + +} diff --git a/src/subcommands/mh/gen-key b/src/subcommands/mh/gen-key index 554c04c..8558441 100755 --- a/src/subcommands/mh/gen-key +++ b/src/subcommands/mh/gen-key @@ -14,7 +14,6 @@ local keyType="RSA" local keyLength="2048" local keyUsage="auth" local keyExpire -local revoker local hostName=$(hostname -f) local userID local keyParameters @@ -36,10 +35,6 @@ while true ; do keyExpire="$2" shift 2 ;; - -r|--revoker) - revoker="$2" - shift 2 - ;; *) if [ "$(echo "$1" | cut -c 1)" = '-' ] ; then failure "Unknown option '$1'. @@ -65,15 +60,6 @@ Key-Usage: $keyUsage Name-Real: $userID Expire-Date: $keyExpire" -# add the revoker field if specified -# FIXME: the "1:" below assumes that $REVOKER's key is an RSA key. -# FIXME: key is marked "sensitive"? is this appropriate? -if [ "$revoker" ] ; then - keyParameters=\ -"${keyParameters} -Revoker: 1:${revoker} sensitive" -fi - echo "The following key parameters will be used for the host private key:" echo "$keyParameters" @@ -113,4 +99,4 @@ gpg_authentication "--export-options export-minimal --armor --export 0x${fingerp log info "SSH host public key in OpenPGP form: ${SYSDATADIR}/ssh_host_rsa_key.pub.gpg" # show info about new key -show_server_key +show_key diff --git a/src/subcommands/mh/import-key b/src/subcommands/mh/import-key index bbeb37f..ac67711 100755 --- a/src/subcommands/mh/import-key +++ b/src/subcommands/mh/import-key @@ -81,4 +81,4 @@ gpg_authentication "--export-options export-minimal --armor --export 0x${fingerp log info "SSH host public key in OpenPGP form: ${SYSDATADIR}/ssh_host_rsa_key.pub.gpg" # show info about new key -show_server_key +show_key diff --git a/src/subcommands/mh/publish-key b/src/subcommands/mh/publish-key index 792d858..8b36a18 100755 --- a/src/subcommands/mh/publish-key +++ b/src/subcommands/mh/publish-key @@ -12,6 +12,8 @@ # publish server key to keyserver +publish_key() { + read -p "Really publish host key to $KEYSERVER? (y/N) " OK; OK=${OK:=N} if [ ${OK/y/Y} != 'Y' ] ; then failure "key not published." @@ -22,3 +24,5 @@ fingerprint=$(fingerprint_server_key) # publish host key gpg_authentication "--keyserver $KEYSERVER --send-keys '0x${fingerprint}!'" + +} diff --git a/src/subcommands/mh/revoke-hostname b/src/subcommands/mh/revoke-hostname index decac86..0a773a3 100755 --- a/src/subcommands/mh/revoke-hostname +++ b/src/subcommands/mh/revoke-hostname @@ -12,6 +12,8 @@ # revoke hostname user ID from host key +revoke_hostname() { + local userID local fingerprint local tmpuidMatch @@ -79,7 +81,7 @@ if echo "$revuidCommand" | \ # update the trustdb for the authentication keyring gpg_authentication "--check-trustdb" - show_server_key + show_key echo echo "NOTE: User ID revoked, but revocation not published." @@ -87,3 +89,5 @@ if echo "$revuidCommand" | \ else failure "Problem revoking user ID." fi + +} diff --git a/src/subcommands/mh/revoke-key b/src/subcommands/mh/revoke-key index b4ce401..3810a0b 100755 --- a/src/subcommands/mh/revoke-key +++ b/src/subcommands/mh/revoke-key @@ -12,5 +12,9 @@ # revoke host key +revoke_key() { + # FIXME: implement! failure "not implemented yet!" + +} diff --git a/src/subcommands/mh/show-key b/src/subcommands/mh/show-key deleted file mode 100755 index c62ec16..0000000 --- a/src/subcommands/mh/show-key +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/env bash - -# Monkeysphere host show-key subcommand -# -# The monkeysphere scripts are written by: -# Jameson Rollins <jrollins@fifthhorseman.net> -# Jamie McClelland <jm@mayfirst.org> -# Daniel Kahn Gillmor <dkg@fifthhorseman.net> -# -# They are Copyright 2008, and are all released under the GPL, version 3 -# or later. - -local fingerprintPGP -local fingerprintSSH -local ret=0 - -# FIXME: you shouldn't have to be root to see the host key fingerprint -if is_root ; then - check_host_keyring - fingerprintPGP=$(fingerprint_server_key) - gpg_authentication "--fingerprint --list-key --list-options show-unusable-uids $fingerprintPGP" 2>/dev/null - echo "OpenPGP fingerprint: $fingerprintPGP" -else - log info "You must be root to see host OpenPGP fingerprint." - ret='1' -fi - -if [ -f "${SYSDATADIR}/ssh_host_rsa_key.pub" ] ; then - fingerprintSSH=$(ssh-keygen -l -f "${SYSDATADIR}/ssh_host_rsa_key.pub" | \ - awk '{ print $1, $2, $4 }') - echo "ssh fingerprint: $fingerprintSSH" -else - log info "SSH host key not found." - ret='1' -fi - -return $ret |