เปิดใช้งานการเข้าสู่ระบบ ssh-key-only กับ Mac ของฉันสำหรับผู้ใช้ 1 คน


21

ฉันมี Macbook Air ที่ฉันต้องการอนุญาตการเข้าถึง SSH ระยะไกลโดยไม่ต้องใช้รหัสผ่าน ฉันได้สร้างผู้ใช้ชื่อremotepairที่ฉันได้เข้าสู่ระบบและตรวจสอบฉันสามารถใช้ Mac ด้วย ฉันได้เพิ่มผู้ใช้นี้ไปยังรายชื่อผู้ใช้ที่ได้รับอนุญาตของบริการ "ลบเข้าสู่ระบบ" และเปิดใช้บริการ ทั้งหมดนี้ทำในแผงควบคุม "การแชร์"

/Users/remotepair/.ssh/authorized_keysฉันมีอากาศคีย์สาธารณะของคอมพิวเตอร์เครื่องอื่นและเพิ่มไปยังแฟ้ม เมื่อคอมพิวเตอร์เครื่องอื่นssh remotepair@<my ip>ฉันยังคงได้รับพรอมต์รหัสผ่าน

ฉันจะปิดใช้งานพรอมต์รหัสผ่านนี้ได้อย่างไร


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

คำตอบ:


27

/etc/sshd_configการตรวจสอบรหัสผ่านปิดการใช้งานที่คุณต้องแก้ไข ในTerminal:

sudo vim /etc/sshd_config

(หรือแทนที่ด้วยโปรแกรมแก้ไขรายการโปรดของคุณ)

มองหาเส้น:

#ChallengeResponseAuthentication yes

และเปลี่ยนเป็น:

ChallengeResponseAuthentication no

นั่นคือเอา#ที่จุดเริ่มต้นและการเปลี่ยนแปลงไปyesno

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

หากคีย์ ssh ของคุณใช้งานไม่ได้แสดงว่าเป็นปัญหาแยกต่างหากจริงๆ แต่นี่จะตอบคำถามตามที่ถูกโพสต์ทันที :)


ฉันต้องเพิ่มผู้ใช้ในการตั้งค่า AllowUser ฉันเดาได้แค่ว่าการตั้งค่า GUI ไม่ได้แก้ไขบรรทัดข้อความนี้ด้วย
Jason

7
หมายเหตุรุ่นที่ใหม่กว่า Mac OS X (แน่นอนใน El Capitan) sshd_config /etc/ssh/ได้ถูกย้ายไป
zelk

2
หมายเหตุเป็นของ MacOS เซีย (v10.12.x) เริ่มต้นสำหรับการPasswordAuthenticationมีการเปลี่ยนแปลงเพื่อให้แน่ใจว่าจะเปลี่ยนเป็นyes no
Travis Clarke

3

เพื่ออัปเดตคำตอบสำหรับ macOS Sierra (10.12.6 โดยเฉพาะ) จะปรากฏไฟล์กำหนดค่าทันที /etc/ssh/sshd_config

2 บรรทัดจะต้องไม่มีเครื่องหมายข้อคิดเห็น + แก้ไขเพื่อปิดใช้งานการรับรองความถูกต้องของรหัสผ่านทั้งหมด: (เหล่านี้คือบรรทัดที่ 57 ถึง 62 รวมในsshd_configไฟล์เริ่มต้น)

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no
#PermitEmptyPasswords no

# Change to no to disable s/key passwords
ChallengeResponseAuthentication no

ดังที่ได้กล่าวไว้ก่อนหน้านี้คุณสามารถเปิด / ปิดการใช้งานการเข้าถึง ssh จาก System Preferences.app GUI และไม่จำเป็นต้องรีสตาร์ท daemon ระหว่างการแก้ไขการกำหนดค่า


1

คุณควรตรวจสอบสิทธิ์ของไดเรกทอรีที่เกี่ยวข้อง: /Users/remotepair/และ/Users/remotepair/.sshพวกเขาจะต้องไม่อนุญาตให้ผู้ใช้ "อื่น ๆ " เข้าถึงการเขียน ฉัน.sshมีสิทธิ์การเข้าถึงสำหรับเจ้าของเท่านั้น

นอกจากนี้บนระบบรีโมตให้ทำssh -v remotepair@yoursystemเพื่อดูว่าวิธีการอนุญาตใดที่ได้รับอนุญาตและพยายาม Authentications that can continue: publickey,password,keyboard-interactiveระวังสำหรับ บางทีคุณต้องเปิดใช้งานRSAAuthenticationในระบบของคุณ


1

ในระบบทดสอบที่นี่การปิดใช้งานพรอมต์ SSH จำเป็นต้องเพิ่มสองบรรทัดต่อไปนี้ใน/etc/sshd_config:

PasswordAuthentication no
ChallengeResponseAuthentication no

ความคิดเห็นในsshd_configแนะนำให้เพิ่มบรรทัดต่อไปนี้ด้วย:

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