เข้าสู่ระบบเบ็ด SSH?


15

มีวิธีรันสคริปต์ / คำสั่งทุกครั้งที่ผู้ใช้เชื่อมต่อโดยใช้ ssh หรือไม่? มันสามารถกำหนดค่าทั่วโลก (เช่นเรียกใช้สคริปต์เมื่อเข้าสู่ระบบของผู้ใช้ใด ๆ )?

ฉันเจอคำถามเกี่ยวกับ Identica นี้ แต่ยังไม่มีคำตอบและอยากจะรู้ต่อไป

คำตอบ:


11

สำหรับผู้ใช้ทั้งหมดหรือผู้ใช้เฉพาะ? สำหรับผู้ใช้คนเดียวให้ตั้งค่าใน.bashrcไฟล์ สำหรับผู้ใช้ทั้งหมดตรวจสอบpam_exec

หากผู้ใช้เข้ามาจากsshdคุณจะต้องเพิ่มบรรทัดต่อไปนี้/etc/pam.d/sshd; ไฟล์อื่น ๆ ขึ้นอยู่กับแหล่งที่มา:

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

เพื่อวัตถุประสงค์ในการทดสอบโมดูลจะรวมอยู่ในoptionalนั้นเพื่อให้คุณยังสามารถเข้าสู่ระบบหากมันล้มเหลว หลังจากที่คุณทำให้แน่ใจว่าการทำงานคุณสามารถเปลี่ยนไปoptional requiredจากนั้นเข้าสู่ระบบจะไม่สามารถดำเนินการได้หากการดำเนินการของ hook ของคุณไม่สำเร็จ

หมายเหตุ:เช่นเคยเมื่อคุณเปลี่ยนการกำหนดค่าล็อกอินให้เปิดเชลล์สำรองในพื้นหลังและทดสอบการเข้าสู่ระบบจากเทอร์มินัลใหม่


ขอบคุณที่ดูมีแนวโน้ม คุณอธิบายเพิ่มเติมอีกหน่อยได้ไหม? ฉันไม่คุ้นเคยกับสิ่งนี้
phunehehe

ฉันคิดว่าฉันควรเพิ่มไปยังแฟ้มsession include pam_exec.so seteuid /path/to/script /etc/pam.d/system-remote-loginถูกต้องหรือไม่
phunehehe

ไม่ว่าจะเป็นsystem-remote-loginหรือsshdขึ้นอยู่กับว่าผู้ใช้จะเข้ามาอย่างไร
Glen Solsberry

! น่ากลัว มันจะดีถ้าคุณแก้ไขคำตอบเพื่อรวมข้อมูล (คุณรู้ว่าสำหรับคนอื่น ๆ ที่ค้นหามัน)
phunehehe

หมายเหตุคน googling คุณยังสามารถใส่บรรทัดนี้auth optional pam_exec.so /path/to/my/hook.shในการ/etc/pam.d/common-authที่จะมีการแจ้งให้คุณทราบ PAM ของเหตุการณ์การตรวจสอบใด ๆ ที่เกิดขึ้น โปรแกรมนี้ยังสามารถส่งการแจ้งเตือนแบบพุชถึงคุณ: github.com/benjojo/PushAlotAuth
Nick Sweeting

6

มีอีกวิธีหนึ่งที่มีผลกับผู้ใช้ที่ใช้ ssh ไม่ใช่คนในท้องถิ่น (ซึ่งอาจดีกว่าในสถานการณ์ฉุกเฉิน)

ดูตัวอย่างจากหน้าคน ssh ด้านล่าง

ในกรณีนี้ผู้ใช้สามารถแก้ไขไฟล์เองได้ (เช่น. bashrc)

 ~/.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.

และนี่คือทั่วโลกและไม่สามารถแก้ไขได้โดยผู้ใช้ปกติ

 /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
แต่ / etc / sshrc จะถูกดำเนินการเฉพาะเมื่อผู้ใช้ไม่มี ~ / .ssh / rc ดังนั้นผู้ใช้รายนี้สามารถข้ามได้
isevcik

2
@ isevcik นั่นคือเฉพาะเมื่อ PermitUserRC ตั้งค่าเป็น "ใช่" ใน/etc/ssh/sshd_config(ดูman sshd_configรายละเอียด)
jeremysprofile
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.