В принципе, это то же самое, что и ответ Куинна, но как рабочий сценарий, а не отдельные команды, которые требуют адаптации для каждой машины / использования.
Я не знаю о накладных расходах в этом, мне кажется, что он шифрует / дешифрует все дважды.
#!/bin/bash
# Reverse sshfs. You need ssh servers on both ends, the script logs first
# onto the remote end and then back into the local one
# Usage: sshfsr dir [user@]host:mountpoint [options]
# [options] are passed on to the remote sshfs
set -e
LOCALPATH=$1
REMOTE=$(echo $2 | grep -o '^[^:]*')
REMOTEPATH=$(echo $2 | grep -o '[^:]*$')
ARGS=${@:3}
LOCALUSER=$(whoami)
PORT=10000
ssh $REMOTE -R $PORT:localhost:22 "sshfs -o NoHostAuthenticationForLocalhost=yes -p $PORT $ARGS $LOCALUSER@localhost:$LOCALPATH $REMOTEPATH" &
Я отключаю HostAuthenticationForLocalhost, потому что, очевидно, localhost может быть чем угодно. Это абсолютно безопасно с аутентификацией с открытым ключом. Вы не должны использовать пароли в любом случае, но даже с паролями вы подключаетесь к хосту, который, как вы знаете, вы контролируете.