4

Я хотел бы автоматически запускать команду каждый раз, когда я успешно подключаюсь к удаленному хосту через ssh.

Я могу сделать это для первого соединения с каждым хостом с помощью PermitLocalCommand yes и LocalCommand ~/bin/ssh-notify-me в моем ~/.ssh/config , аналогично этому ответу, но я также использую довольно агрессивное мультиплексирование ssh Конфигурация (примерно следующая):

Host *
PermitLocalCommand yes
ServerAliveCountMax 2
ServerAliveInterval 5
ControlPath ~/.ssh/mux/%r@%h:%p
ControlMaster auto
ControlPersist 1h

При такой настройке LocalCommand выполняется только для первого соединения до того, как существует управляющий / мультиплексированный сокет. После этого я подключаюсь, но команда не запускается.

Есть ли способ (без отключения мультиплексирования), чтобы убедиться, что LocalCommand или какой-либо эквивалент происходит для каждого нового открытого интерактивного сеанса?

Оборачивание двоичного файла ssh либо в функцию оболочки, либо в сценарий кажется невозможным, потому что он не может знать, было ли соединение успешным, до тех пор, пока оно не будет завершено.

0