From 70674cae8b3d69d0e750125387b26c0d5857c5ba Mon Sep 17 00:00:00 2001 From: Jameson Graef Rollins Date: Tue, 12 Aug 2008 18:24:18 -0700 Subject: fix another bug when processing ssh key files that do not exist. --- src/common | 13 +++++++++---- src/monkeysphere-ssh-proxycommand | 2 +- 2 files changed, 10 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/common b/src/common index b4e786b..cbfa956 100644 --- a/src/common +++ b/src/common @@ -64,6 +64,11 @@ check_capability() { return 0 } +# hash of a file +file_hash() { + md5sum "$1" 2> /dev/null +} + # convert escaped characters from gpg output back into original # character # FIXME: undo all escape character translation in with-colons gpg output @@ -573,7 +578,7 @@ update_known_hosts() { lockfile-create "$KNOWN_HOSTS" # note pre update file checksum - fileCheck="$(cat "$KNOWN_HOSTS" | md5sum)" + fileCheck="$(file_hash "$KNOWN_HOSTS")" for host ; do # process the host @@ -596,7 +601,7 @@ update_known_hosts() { lockfile-remove "$KNOWN_HOSTS" # note if the known_hosts file was updated - if [ "$(cat "$KNOWN_HOSTS" | md5sum)" != "$fileCheck" ] ; then + if [ "$(file_hash "$KNOWN_HOSTS")" != "$fileCheck" ] ; then log "known_hosts file updated." fi @@ -711,7 +716,7 @@ update_authorized_keys() { lockfile-create "$AUTHORIZED_KEYS" # note pre update file checksum - fileCheck="$(cat "$AUTHORIZED_KEYS" | md5sum)" + fileCheck="$(file_hash "$AUTHORIZED_KEYS")" # remove any monkeysphere lines from authorized_keys file remove_monkeysphere_lines "$AUTHORIZED_KEYS" @@ -739,7 +744,7 @@ update_authorized_keys() { lockfile-remove "$AUTHORIZED_KEYS" # note if the authorized_keys file was updated - if [ "$(cat "$AUTHORIZED_KEYS" | md5sum)" != "$fileCheck" ] ; then + if [ "$(file_hash "$AUTHORIZED_KEYS")" != "$fileCheck" ] ; then log "authorized_keys file updated." fi diff --git a/src/monkeysphere-ssh-proxycommand b/src/monkeysphere-ssh-proxycommand index 438db87..780ff03 100755 --- a/src/monkeysphere-ssh-proxycommand +++ b/src/monkeysphere-ssh-proxycommand @@ -59,7 +59,7 @@ if gpg --list-key ="${URI}" 2>&1 >/dev/null ; then else # if the host key is found in the known_hosts file... # FIXME: this only works for default known_hosts location - hostKey=$(ssh-keygen -F "$HOST") + hostKey=$(ssh-keygen -F "$HOST" 2>/dev/null) if [ "$hostKey" ] ; then # do not check the keyserver -- cgit v1.2.3