X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=tests%2Fbasic;h=dfbe8346a59404d67921b266091d0593bed72131;hb=3c279d569194643a5acf2316d0f9e3783cc5aeb1;hp=b4ad0648c647497a980f4b229e9c0f9a3e2dd4b5;hpb=149197652f5c404a83e14c5d004fdf5dd1509e4c;p=monkeysphere.git diff --git a/tests/basic b/tests/basic index b4ad064..dfbe834 100755 --- a/tests/basic +++ b/tests/basic @@ -2,7 +2,8 @@ # Tests to ensure that the monkeysphere is working # -# unset MONKEYSPHERE_TEST_NO_EXAMINE to examine +# unset MONKEYSPHERE_TEST_NO_EXAMINE to get a prompt to examine the +# test state after failure. # Authors: # Daniel Kahn Gillmor @@ -46,7 +47,7 @@ On debian-derived systems, you can set this up with: # gpg command for test admin user gpgadmin() { - chmod 0700 "$TEMPDIR"/admin + chmod 0700 "$TEMPDIR"/admin "$TEMPDIR"/admin/.gnupg GNUPGHOME="$TEMPDIR"/admin/.gnupg gpg --no-tty "$@" } @@ -66,17 +67,18 @@ ssh_test() { # wait until the socket is created before continuing while [ ! -S "$SOCKET" ] ; do - sleep 2 + sleep 1 done # make a client connection to the socket echo "##### starting ssh client..." ssh-agent bash -c \ - "monkeysphere subkey-to-ssh-agent && ssh -F $TEMPDIR/testuser/.ssh/config testhost true" \ + "monkeysphere subkey-to-ssh-agent && ssh -F $TEMPDIR/testuser/.ssh/config ${target_hostname:-testhost} true" \ || RETURN="$?" # kill the sshd process if it's still running - kill "$SSHD_PID" + kill "$SSHD_PID" || true + wait SSHD_PID= if [ "$RETURN" = "$CODE" ] ; then @@ -144,6 +146,35 @@ export SOCKET="$TEMPDIR"/ssh-socket export DISPLAY=monkeys +## we cannot do proper directory permissions checking if the current +## working directory has unsatisfactory permissions: +if ( . "$MONKEYSPHERE_SYSSHAREDIR"/common && check_key_file_permissions $(whoami) "$TEMPDIR" ) ; then + echo "Permissions on temporary directory '$TEMPDIR' are OK for permissions checks." + TEMPDIR_PERMISSIONS_SAFE=yes +else + cat <> "$SSHD_CONFIG" +StrictModes no +EOF +fi + ###################################################################### ### SERVER HOST SETUP @@ -429,12 +468,53 @@ chmod o-w "$TESTHOME"/.monkeysphere.linktest rm "$TESTHOME"/.monkeysphere mv "$TESTHOME"/.monkeysphere{.bak,} +# ensure we're back to normal: +echo +echo "##################################################" +echo "### making sure we are back to normal..." +monkeysphere-authentication update-users $(whoami) +ssh_test + + +echo +echo "##################################################" +echo "### ssh connection test directly to 'testhost2' without new name..." +target_hostname=testhost2 ssh_test 255 +echo +echo "##################################################" +echo "### add hostname, certify by admin, import by user..." +monkeysphere-host add-hostname testhost2 +< "$MONKEYSPHERE_SYSCONFIGDIR"/ssh_host_rsa_key.pub.gpg gpgadmin --import +printf "y\ny\n" | gpgadmin --command-fd 0 --sign-key "$HOSTKEYID" + +echo +echo "##################################################" +echo "### ssh connection test with hostname 'testhost2' added..." +gpgadmin --export "$HOSTKEYID" | gpg --import +gpg --check-trustdb +ssh_test + +echo +echo "##################################################" +echo "### ssh connection test directly to 'testhost2' ..." +gpg --import <"$MONKEYSPHERE_SYSCONFIGDIR"/ssh_host_rsa_key.pub.gpg +gpg --check-trustdb +target_hostname=testhost2 ssh_test + +echo +echo "##################################################" +echo "### ssh connection test for failure with 'testhost2' revoked..." +monkeysphere-host revoke-hostname testhost2 +gpg --import <"$MONKEYSPHERE_SYSCONFIGDIR"/ssh_host_rsa_key.pub.gpg +gpg --check-trustdb +target_hostname=testhost2 ssh_test 255 + # FIXME: addtest: remove admin as id-certifier and check ssh failure -# FIXME: addtest: add hostname on host key -# FIXME: addtest: revoke hostname on host key and check ssh failure +# FIXME: addtest: how do we test that set-expire makes sense after new +# hostnames have been added? -# addtest: revoke the host key and check ssh failure +# FIXME: addtest: revoke the host key and check ssh failure # test to make sure things are OK after the previous tests: echo