Ssh giriş kanca?


15

Bir kullanıcı ssh kullanarak her bağlandığında bir komut dosyası / komut çalıştırmanın bir yolu var mı? Genel olarak yapılandırılabilir mi (yani herhangi bir kullanıcı oturum açtığında komut dosyasını çalıştırır )?

Identica ile ilgili bu soruya rastladım, ama henüz cevap yok ve yine de bilmek istiyorum.

Yanıtlar:


11

Tüm kullanıcılar veya belirli bir kullanıcı için mi? Tek bir kullanıcı için .bashrcdosyayı kendi dosyalarına yerleştirin; tüm kullanıcılar için pam_exec'e bakın .

Kullanıcılar geliyorsa sshd, aşağıdaki satırı eklemek istersiniz /etc/pam.d/sshd; kaynağına bağlı olarak diğer dosyalar:

session optional pam_exec.so seteuid  /path/to/my/hook.sh

Test amacıyla, modül olarak eklenir optional, böylece başarısız olursa giriş yapabilirsiniz. Emin çalıştığını yaptıktan sonra değiştirebilirsiniz optionaliçin required. Ardından, kanca komut dosyanızın yürütülmesi başarılı olmadıkça giriş yapmak mümkün olmayacaktır.

Not: Her zaman olduğu gibi, oturum açma yapılandırmasını değiştirdiğinizde, arka planda bir yedek kabuk bırakın ve oturum açma işlemini yeni bir terminalden test edin.


Teşekkürler, bu umut verici görünüyor. Biraz daha ayrıntı verebilir misiniz? Buna aşina değilim.
phunehehe

Sanırım session include pam_exec.so seteuid /path/to/scriptdosyaya eklemeliyim /etc/pam.d/system-remote-login. Bu doğru mu?
phunehehe

Ya system-remote-loginda sshd, kullanıcının nasıl geldiğine bağlı olarak.
Glen Solsberry

Müthiş! Cevabı bilgileri içerecek şekilde düzenlerseniz harika olur (bilirsiniz, bunu arayan başkaları için).
phunehehe

Googling insanlara Not, ayrıca bu çizgiyi koyabilirsiniz auth optional pam_exec.so /path/to/my/hook.shiçinde /etc/pam.d/common-authPAM meydana HERHANGİ kimlik doğrulama etkinlikleri size bildirir olması. Bu program size push bildirimleri de gönderebilir: github.com/benjojo/PushAlotAuth
Nick Sweeting

6

yalnızca yerel olanları değil ssh kullanan kullanıcıları etkileyen başka bir yol daha vardır (bu, acil durumlarda daha iyi olabilir)

aşağıdaki ssh man sayfasındaki snippet'lere bakın.

bu durumda kullanıcılar genellikle dosyaları kendileri değiştirebilir (.bashrc gibi)

 ~/.ssh/rc
         Commands in this file are executed by ssh when the user logs in, just before the user's shell (or command) is started.  See the sshd(8) manual page for more information.

ve bu küreseldir ve normal kullanıcı tarafından değiştirilemez

 /etc/sshrc
         Commands in this file are executed by ssh when the user logs in, just before the user's shell (or command) is started.  See the sshd(8) manual page for more information.

2
Ancak / etc / sshrc yalnızca kullanıcının kendi ~ / .ssh / rc yoksa yürütülmesi gerekir, bu nedenle bu kullanıcı atlayabilir
isevcik

2
@isevcik, yani PermitUserRC'de "evet" olarak ayarlanmışsa /etc/ssh/sshd_config( man sshd_configayrıntılar için bkz .)
jeremysprofile
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.