Bash บอกฉันว่าใช้คีย์สาธารณะ SSH ใดในการตรวจสอบ?


14

สมมติว่าฉันต้องการติดตามrootผู้ใช้ของฉัน /root/.ssh/authorized_keysแต่ละคนมีคีย์ส่วนตัวที่ไม่ซ้ำกันและกุญแจสาธารณะของพวกเขาได้รับการจัดเก็บไว้ใน

ระบุว่าผู้ใช้แต่ละคนลงชื่อเข้าใช้ด้วยคีย์เฉพาะของพวกเขาฉันจะบอกได้อย่างไรจากภายในเซสชัน BASH ว่าใช้คีย์ใดในการตรวจสอบสิทธิ์ ฉันลองดูตัวแปรสภาพแวดล้อมเมื่อฉันเข้าสู่ระบบ แต่ไม่เห็นสิ่งใดที่สัมพันธ์กับเซสชันของฉันด้วยรหัสสาธารณะของฉัน


มีความเกี่ยวข้องเล็กน้อย: การตั้งค่า LogLevel VERBOSE ใน sshd_config (openssh) ของคุณจะบันทึกลายนิ้วมือของคีย์ที่ใช้ในการเข้าสู่ระบบ
andol

คำตอบ:


21

คุณสามารถเพิ่มชื่อผู้ใช้ไปยังรหัสสาธารณะใน~/.ssh/authorized_keysเซิร์ฟเวอร์และส่งออกเป็นค่าสภาพแวดล้อม:

environment="REALUSER=realusername" ssh-dsa AAA...

ที่จะตั้งค่า REALUSER ของตัวแปรสภาพแวดล้อมซึ่งจะพร้อมใช้งานใน bash สิ่งนี้จะใช้งานได้หากPermitUserEnvironmentตั้งค่าเป็นจริงเท่านั้นsshd_config


อ๊ะ .. จริงเหรอ? เย็น! คุณหมายถึง~/.ssh/authorized_keysอะไร ผมไม่เคยรู้เกี่ยวกับเรื่องนี้.
PP

5
ใช่นั่นแหล่ะ คุณสามารถทำได้มากทั้งสิ่งที่น่าสนใจมี - จะบอกคุณมากขึ้นภายใต้หัวข้อman ssh AUTHORIZED_KEYS FILE FORMAT
เจนนี่ D

4
มันอาจขึ้นอยู่กับรุ่น แต่ฉันต้องใช้man sshdเพื่อค้นหาAUTHORIZED_KEYS FILE FORMATส่วน
Matthew Crumley

2
โปรดทราบว่าการเปิดใช้งาน PermitUserEnvironment มีผลกระทบด้านความปลอดภัยบางประการ อ่าน man sshd
Florin Andrei
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.