ฉันจะอนุญาตให้ใช้การตรวจสอบรหัสผ่าน SSH จากที่อยู่ IP บางแห่งได้อย่างไร


103

ฉันต้องการอนุญาตการตรวจสอบรหัสผ่าน SSH จากซับเน็ตบางอันเท่านั้น ฉันเห็นตัวเลือกที่จะไม่อนุญาตให้ใช้ทั่วโลกใน/etc/ssh/sshd_config:

# Change to no to disable tunnelled clear text passwords
#PasswordAuthentication yes

มีวิธีใช้การกำหนดค่านี้กับช่วงที่อยู่ IP ที่เลือกหรือไม่

คำตอบ:


156

ใช้Matchบล็อกที่ส่วนท้ายของ/etc/ssh/sshd_config:

# Global settings
…
PasswordAuthentication no
…

# Settings that override the global settings for matching IP addresses only
Match address 192.0.2.0/24
    PasswordAuthentication yes

จากนั้นแจ้งบริการ sshd เพื่อโหลดการกำหนดค่าใหม่:

service ssh reload

1
ฉันลองสิ่งนี้ (พร้อม 192.168.0.0/16 แทน) และเมื่อฉันเริ่มบริการ ssh ใหม่ฉันก็ถูกล็อค SSH ปฏิเสธการเชื่อมต่อใด ๆ ความคิดใด ๆ ว่าทำไมถึงเป็นเช่นนั้น
น้ำตกไมเคิล

2
@MichaelWaterfall เป็นไปไม่ได้ที่จะบอกด้วยข้อมูลเล็ก ๆ น้อย ๆ ตรวจสอบให้แน่ใจว่าเชลล์ทำงานต่อไปจนกว่าคุณจะตรวจสอบความถูกต้องของการกำหนดค่าใหม่ การเริ่มบริการ ssh ใหม่จะไม่มีผลกับการเชื่อมต่อที่ใช้งานอยู่
Gilles

28
ปัญหาที่น่าจะเกิดขึ้นคือคุณใส่ Match Match ไว้ตรงกลางของ sshd_config เส้นการจับคู่จะมีผลกับทุกบรรทัดต่อไปนี้จนกว่าจะถึงบรรทัดการจับคู่ถัดไปดังนั้นควรอยู่ที่ท้ายไฟล์
Ken Simon

6
แม้จะมีการเยื้องในคำตอบsshd_configก็ตามไม่ใช่ Python;)
Nick T

1
@frepie Matchบล็อกขยายจนกว่าMatchคำสั่งถัดไปหรือจนกว่าจะสิ้นสุดไฟล์ นั่นเป็นเหตุผลว่าทำไมคุณถึงต้องวางมันให้จบ
Gilles

8

คุณสามารถเพิ่ม:

AllowUsers user1@192.168.*.*, user2@192.168.*.*

การเปลี่ยนแปลงนี้เป็นพฤติกรรมเริ่มต้นปฏิเสธผู้ใช้อื่น ๆ ทั้งหมดจากโฮสต์ทั้งหมด Match block มีให้ในOpenSsh เวอร์ชั่น 5.1ขึ้นไป


โทรฉันอนุญาตให้กลุ่มแทนผู้ใช้คนเดียว
Lamar

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