Я хотел бы автоматически запускать команду каждый раз, когда я успешно подключаюсь к удаленному хосту через 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
либо в функцию оболочки, либо в сценарий кажется невозможным, потому что он не может знать, было ли соединение успешным, до тех пор, пока оно не будет завершено.