Sto cercando di trovare un modo per eseguire un comando specifico durante la connessione a un server tramite SSH. Con questo intendo dire che il comando verrà eseguito incondizionatamente all'apertura di una connessione, quindi questo dovrebbe essere eseguito preferibilmente contemporaneamente a un Banner
l'opzione verrebbe stampata se impostata. Non sto cercando di eseguire un comando dopo accedendo.
Cosa cerco, per esempio:
$ ssh [email protected]
(Command essentially executed at this point, before the input prints.)
[email protected]'s password:
Il motivo per cui sto cercando di farlo è che vorrei eseguire un breve script che invia notifiche push al mio telefono ogni volta che viene stabilita una connessione, indipendentemente dal fatto che acceda o meno. Avevo pianificato di utilizzare pam_exec, ma questo attiva solo auth
se si inserisce una password e si preme invio, e il account
e session_*
i moduli si attivano solo in caso di accesso riuscito. Se una connessione viene aperta, ma poi chiusa, ad esempio quando un utente preme semplicemente Ctrl+C, lo script non verrà mai eseguito.
C'è un metodo per farlo? Non trovo molte informazioni sull'argomento.
Risposta accettata:
Puoi eseguire sshd
tramite inetd
, con inetd
in esecuzione:
sh -c 'your-command; exec sshd -iD'
su una connessione in entrata (vedi l'avvertenza in sshd(8)
però).