diff --git a/web/sshfs-mount b/web/sshfs-mount index bc144a9..6f21b08 100755 --- a/web/sshfs-mount +++ b/web/sshfs-mount @@ -10,6 +10,9 @@ _helpexit() { -nosave will not use host key checking, nor save it anywhere. potentially dangerous. -nofollow disable symlinks following + If you add 'host myhost # sshfs' line to ~/.ssh/config the entries will be listed first. + Adding a remote path at the end: 'host myhost # sshfs /my/path' in ~/.ssh/config will use that path as default remotepath + " "$( basename $0 )" _current_mounts exit 1 @@ -56,14 +59,22 @@ for (( i=1; i<=$#; i++ )); do if [[ -z "$host" ]]; then host="${!i}" else - localpath="${!i}" + remotepath="${!i}" fi done mkdir -p ~/mnt valid_name=$( echo "$host" | sed -e 's/[^A-Za-z0-9._@-]//g') -path=:"${localpath}" +if [[ -z "$remotepath" ]]; then + if [[ -e ~/.ssh/config ]]; then + if grep -q ^"host $host # sshfs" ~/.ssh/config; then + # pick only string after 'sshfs' + remotepath=$( grep ^"host $host # sshfs" ~/.ssh/config | head -n 1 | sed "s/^host $host # sshfs //" ) + fi + fi +fi +path=:"${remotepath}" if [[ "$nosave" = true ]]; then NOSAVE="-o ssh_command='ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no'"