Как выполнить локальную команду перед началом подключения SSH и после закрытия подключения SSH? - PullRequest
1 голос
/ 01 октября 2019

По сути, я хочу запустить созданный мной скрипт Bash, который переключает идентификаторы SSID WiFi до начала подключения SSH и после закрытия подключения SSH.

Я добавил это в ~/.ssh/config, установив ProxyCommandдо ./run-script; ssh %h:%p, но при этом я чувствую, что он игнорирует любые параметры, которые я передал, когда я запускаю команду ssh. Кроме того, я понятия не имею, как заставить скрипт запускаться снова, когда соединение SSH закрывается.

1 Ответ

1 голос
/ 01 октября 2019

Предполагая, что невозможно реализовать оболочку для 'ssh' (используя псевдоним или какой-либо другой метод), в proxyCommand можно реализовать следующее.

Важно отметить, что существуетнет защиты от многократного вызова 'ssh' - возможно, что во время определенного вызова WIFI уже подключен. Кроме того, возможно, что когда определенный ssh ​​завершается, WIFI должен оставаться активным из-за других ожидающих условий.

Возможная реализация прокси-сценария - ProxyCommand / path / to / run-script% h%p

#! /bin/sh
pre-command      # connect to WIFI
nc -N "$1" "$2"     # Tunnel, '%h' and '%p' are passed in
post-command     # Disconnect WIFI

Вы не хотите использовать простой ssh ​​в прокси-скрипте, поскольку это приведет к другому вызову 'run-script'. Также обратите внимание, что все опции, предоставленные исходному ssh, будут обрабатываться начальным сеансом 'ssh', который будет использовать туннель прокси 'nc'.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...