ฉันจะล็อคบัญชีของตัวเองจากการเข้าสู่ระบบ ssh จากระยะไกลด้วยรหัสผ่านได้อย่างไร


10

ฉันไม่ต้องการปิดใช้งานการเข้าสู่ระบบระยะไกลด้วยรหัสผ่านทั้งหมด แต่ฉันต้องการทำให้บัญชีของฉันสามารถเข้าถึงได้ด้วยการตรวจสอบสิทธิ์คู่คีย์เท่านั้น (มีผู้ใช้รายอื่นที่ต้องการใช้รหัสผ่านเพื่อเข้าสู่ระบบ) เป็นไปได้หรือไม่ที่จะเปลี่ยนแปลงสิ่งนี้ตามความต้องการของผู้ใช้โดยไม่ต้องเปลี่ยนการตั้งค่าระบบ?

และเพื่อให้ชัดเจนบัญชีของฉันมีการเข้าถึง sudo ดังนั้นฉันไม่ต้องการล็อครหัสผ่าน

คำตอบ:


9

คุณสามารถใช้ตัวเลือกจับคู่ใน sshd_config

การแข่งขัน แนะนำบล็อกที่มีเงื่อนไข หากตรงตามเกณฑ์ทั้งหมดในบรรทัดการจับคู่คำหลักในบรรทัดต่อไปนี้จะแทนที่ชุดที่อยู่ในส่วนส่วนกลางของไฟล์กำหนดค่าจนกว่าจะตรงกับอีกบรรทัดหนึ่งหรือสิ้นสุดไฟล์ [1]

ดังนั้นในตอนท้ายของไฟล์คุณสามารถระบุ:

Match User yourusername
PasswordAuthentication no

ดูman 5 sshd_configตัวเลือกทั้งหมดที่มี

[1] http://www.openbsd.org/cgi-bin/man.cgi?query=sshd_config&sektion=5


นี่เป็นสิ่งที่ดีอยู่แล้ว แต่ฉันต้องการดูว่าฉันสามารถทำได้โดยไม่แก้ไข sshd_config
phunehehe

2
เมื่อคุณต้องการเปลี่ยนแปลงระบบนั่นคือสิ่งที่ไม่ส่งผลกระทบต่อผู้ใช้รายอื่นดูเหมือนจะไม่น่าเป็นไปได้ ...
jasonwryan

และ ~ / .ssh / config เกี่ยวกับอะไร คุณลองรวมถึงการตั้งค่าที่นั่นหรือไม่?
ttyS0

1
AFAK ~ / .ssh / config สำหรับไคลเอ็นต์ไม่ใช่เซิร์ฟเวอร์
Adam Byrtek

1

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

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

เพื่อให้เข้าใจว่าเหตุใดจึงเป็นปัญหาลองนึกภาพสถานการณ์ด้วยวิธีอื่น ผู้ดูแลระบบ (ผู้ที่สามารถเปลี่ยนไฟล์กำหนดค่าของระบบ) ตั้งค่าระบบให้เข้าสู่ระบบตามคีย์เท่านั้น จากนั้นผู้ใช้บางคนเข้ามาและสามารถเข้าถึงไฟล์ผู้ใช้ของตนเองและตั้งค่าบัญชีของตนเพื่ออนุญาตให้ใช้การพิสูจน์ตัวตนด้วยรหัสผ่านแทนที่นโยบายของระบบ เสียงบี๊บ ปัญหาด้านความปลอดภัย!

นั่นอธิบายว่าทำไมการเปลี่ยนแปลงที่คุณต้องการทำนั้นเป็นไปได้จากไฟล์กำหนดค่าระบบเท่านั้น


มันยากที่จะคิดแบบนั้นเพราะถ้าฉันเป็นผู้ใช้ธรรมดาที่ไม่ได้ sudo ฉันสามารถตั้งรหัสของฉันอย่างมีความสุขแล้วล็อครหัสผ่านทำให้บัญชีของฉัน
phunehehe

ในความคิดอื่นฉันสามารถล็อครหัสผ่านของฉันทุกครั้งที่ฉันจะออกจากระบบซึ่งจะไม่อนุญาตให้ลงชื่อเข้าใช้รหัสผ่านทั้งหมดสำหรับบัญชีของฉัน จากนั้นเมื่อฉันเข้าสู่ระบบด้วยกุญแจของฉันฉันสามารถเปิดใช้งานรหัสผ่านอีกครั้งเพื่อ sudo เห็นได้ชัดว่ามันไม่ใช่ทางออกที่ดี แต่มันทำให้ฉันคิดว่ามันเป็นไปได้
phunehehe

1
คุณทำได้เพียงเพราะผู้ดูแลระบบอนุญาตให้ใช้การรับรองความถูกต้องของคีย์และคุณเพิ่มข้อ จำกัด สำหรับตัวคุณเองเท่านั้นไม่เปลี่ยนแปลงอะไรเลย การปิดใช้งานรหัสผ่านของคุณเพียงแค่ตั้งค่าเป็นค่าที่ไม่ถูกต้อง แต่จะไม่เปลี่ยนการรับรองความถูกต้องที่ระบบภูตอนุญาต
Caleb

"การเพิ่มข้อ จำกัด สำหรับตัวคุณเองไม่เปลี่ยนแปลงอะไรเลย" เป็นสิ่งที่ฉันต้องการจะทำ
phunehehe

@Caleb: จะมีปัญหาด้านความปลอดภัยในการช่วยให้authorized_keysการใส่มากขึ้นข้อ จำกัด ตามที่ต้องการ phunehehe ตัวอย่างเช่นauthorized_keysสามารถ จำกัด บางคีย์ให้กับคำสั่งบางอย่าง
Gilles 'หยุดความชั่วร้าย' ใน

0

การเพิ่มข้อ จำกัด สำหรับตัวคุณเองไม่เปลี่ยนแปลงอะไรเลย

ทำไมไม่ไปที่ฝั่งไคลเอ็นต์ถ้าแน่ใจว่า ssh จะเป็นไคลเอนต์ที่จะใช้สำหรับการพยายามเข้าสู่ระบบ? ถ้าใช่ลองทำการเปลี่ยนแปลง ssh_config แทน sshd_config ตรวจสอบพารามิเตอร์ 'PasswordAuthentication No' และ PreferredAuthentications

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