Come eseguire uno script a livello di sistema su qualsiasi login ssh (con OpenSSH)?

Su qualsiasi login / connessione di ssh (qualcuno che accede tramite ssh), c'è un modo per eseguire uno script? Utilizzo del server OpenSSH.

Lo script non deve essere modificato da nessuno degli utenti, ovviamente, quindi questo dovrebbe essere uno script a livello di sistema.

Grazie!

  • Consenti agli utenti di ssh ad utenti specifici tramite ldap e chiavi pubbliche memorizzate
  • riavviare ssh in solaris
  • Come forzare i kerberos da utilizzare nella memory cache credenziale?
  • Modificare / etc / hosts per accedere facilmente a un nome di dominio (o indirizzo IP) per l'istanza amazon EC2
  • SSH non riesce: la richiesta di assegnazione PTY non è rioutput sul canale 0
  • Autorizzazioni per l'utente chrooted non funzionano dopo l'aggiornamento su Amazon Linux
  • Login root disabilitato per SSH in Centos 5.9, login chiave non funziona più
  • Ottenere cron log da aggiungere al file, non sovrascrivere
  • 4 Solutions collect form web for “Come eseguire uno script a livello di sistema su qualsiasi login ssh (con OpenSSH)?”

    Se stai cercando di farlo non intrusivo all'esperienza dell'utente, date un'occhiata a un sostituto syslog (es. Syslog-ng). È ansible triggersre il command nei messaggi di registro inviati a syslog dal server SSH quando qualcuno accede.

    Questo approccio è un po 'rube-goldbergian e dipende dal syslog che funziona correttamente. YMMV, IMHO, SLATFATF

    Hai già uno script che viene eseguito each volta che si accede a qualcuno: /etc/profile

    È ansible modificare lo script per eseguire qualsiasi attività che si è in mente, oppure call direttamente lo script. Sui .sh Debian, è sufficiente .sh tuo script personalizzato (che termina in .sh ) in /etc/profile.d e verrà chiamato automaticamente.

    NOTA: Tutto quello che ho appena detto riguarda solo i derivati ​​shell di Bourne, come il default /bin/sh , ash, bash, ksh, ecc. La maggior parte degli utenti rimane con bash, quindi le indicazioni di cui sopra sono probabilmente tutte le necessità. Altre famiglie di conchiglie utilizzano altri script di avvio. Tcsh, ad esempio, eseguirà /etc/csh.cshrc al login.

    Vedere ForceCommand in sshd_config(5) :

     Forza l'esecuzione del command specificato da ForceCommand,
     ignorando qualsiasi command fornito dal cliente e ~ / .ssh / rc if
     presente.  Il command viene richiamato utilizzando la shell di login dell'utente
     con l'opzione -c.  Ciò vale per shell, command o sottosistema
     esecuzione.  È più utile all'interno di un block di corrispondenza.  Il command
     originariamente fornito dal cliente è disponibile nel sito web
     SSH_ORIGINAL_COMMAND variabile di ambiente.  Specifica di un command
     di `` interno-sftp '' obbligherà l'uso di un sftp in-process
     server che non richiede alcun file di supporto quando viene utilizzato con
     ChrootDirectory.
    

    È ansible modificare la shell di un utente in modo tale che uno script personalizzato sia stato eseguito dopo l'accesso. Può essere la shell predefinita per qualsiasi utente che ne abbia bisogno (consiglierei di mantenere un account amministratore con bash per risolvere i problemi).

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.