Tweak how empty authorized_user_ids and known_hosts files are handled.
[monkeysphere.git] / src / monkeysphere-ssh-proxycommand
index 6dcb723e244a6d32d5f114dc02a6f336fcae2a58..6d6d3c0f65a4ad4dfe8836952d12c7f0d437b4e4 100755 (executable)
@@ -39,26 +39,28 @@ if [ -z "$HOST" ] ; then
     exit 1
 fi
 if [ -z "$PORT" ] ; then
-    log "port must be specified."
-    usage
-    exit 1
+    PORT=22
 fi
 
 # set the host URI
-URI="ssh://${HOST}"
 if [ "$PORT" != '22' ] ; then
-    URI="${URI}:$PORT"
+    HOSTP="${HOST}:${PORT}"
+else
+    HOSTP="${HOST}"
 fi
+URI="ssh://${HOSTP}"
 
 # if the host is in the gpg keyring...
 if gpg --list-key ="${URI}" 2>&1 >/dev/null ; then
     # do not check the keyserver
     CHECK_KEYSERVER="false"
+
 # if the host is NOT in the keyring...
 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")
+
     if [ "$hostKey" ] ; then
        # do not check the keyserver
        # FIXME: more nuanced checking should be done here to properly
@@ -72,10 +74,12 @@ else
        CHECK_KEYSERVER="true"
     fi
 fi
-export CHECK_KEYSERVER
+
+MONKEYSPHERE_CHECK_KEYSERVER=${MONKEYSPHERE_CHECK_KEYSERVER:="$CHECK_KEYSERVER"}
+export MONKEYSPHERE_CHECK_KEYSERVER
 
 # update the known_hosts file for the host
-monkeysphere update-known_hosts "$HOST"
+monkeysphere update-known_hosts "$HOSTP"
 
 # exec a netcat passthrough to host for the ssh connection
 if [ -z "$NO_CONNECT" ] ; then