Вы можете сделать это с помощью удаленной машины следующим образом.
На вашей локальной машине введите команду для запуска в переменной окружения LC_SSH_INITIAL_COMMAND. SSH обычно настроен на передачу всех переменных среды формы LC_*, потому что они обычно являются настройками локали.
На удаленном компьютере запустите eval "$LC_SSH_INITIAL_COMMAND" через настройки ключа в~/.ssh/authorized_keys или из ~/.ssh/rc(знайте, что если у вас есть ~/.ssh/rcфайл, вам нужно позаботиться о xauthручном запуске для пересылки X11).
С помощью этого authorized_keysметода вы можете аналогичным образом выполнить команду при выходе из сеанса SSH (если только процесс оболочки не будет внезапно прерван; вам следует как минимум перехватить сигнал HUP, чтобы ваша команда была выполнена, даже если соединение разорвано).
Однако это не очень хорошая договоренность для выполнения чего-то глобального, такого как монтирование файловой системы. Вам нужно позаботиться о том, чтобы не монтировать снова, если файловая система уже смонтирована (например, из-за одновременно выполняющейся команды SSH), и не отключать при выходе из системы. Моя рекомендация для этого варианта использования по- прежнему заключается в том, чтобы явно выполнить монтирование, затем запускать удаленные команды, не делая ничего особенного, и отключать, когда вы больше не хотите обращаться к этой файловой системе.
~/.ssh/rcснова хранится на удаленной машине. Что касается вашего комментария обpsотображении параметров моей командной строки (включая пароль), это меня не беспокоит. Это удаленная машина, которой я не доверяю. Моя локальная машина используется только мной, поэтому никто другой не имеет к ней доступаps.