SSH Authorized_Key Login ทำงานในทิศทางเดียวเท่านั้น


0

มีสามไฟล์ในการตั้งค่าของฉัน:

id_rsa
id_rsa.pub
authorized_keys

authorized_keysมีสำเนาของid_rsa.pubเนื้อหาที่อนุญาตการลงชื่อเข้าใช้ที่ไม่มีรหัสผ่าน

ไฟล์เหล่านี้ถูกคัดลอกระหว่างคอมพิวเตอร์สองเครื่อง ถ้าฉัน ssh จาก computer1 ถึง computer2 มันใช้งานได้ ถ้าฉัน ssh จาก coputer2 ถึงคอมพิวเตอร์ 1 มันจะถามรหัสผ่าน ใครสามารถบอกฉันได้ว่าทำไมสิ่งนี้ถึงเกิดขึ้น

นอกจากนี้ทั้งสองระบบกำลังใช้งาน Ubuntu 10.04 ฉันติดตั้งแพคเกจ openssh-server ใหม่บนทั้งสองระบบแล้ว สิทธิ์ของไฟล์เหมือนกัน / etc / ssh sshd_configและssh_configไฟล์เหมือนกัน ฉันทำงานด้วย-v -v -vและความแตกต่างเพียงอย่างเดียวระหว่างสองเซสชันคือหนึ่งกล่าวว่า 'เซิร์ฟเวอร์ได้รับการยอมรับคีย์' ส่วนอีกคนหนึ่งยังคงพร้อมท์รหัสผ่าน

ดังนั้นมีอะไรเหลือให้ตรวจสอบอีก?

คำตอบ:


1

คุณสามารถรับเอาต์พุตการดีบักเซิร์ฟเวอร์โดยหยุดเซิร์ฟเวอร์และรันจากบรรทัดคำสั่ง:

sudo /usr/sbin/sshd -Dd

สิ่งนี้ให้ผลลัพธ์ต่อไปนี้แก่ฉันหลังจากพยายามเข้าสู่ระบบจากคอมพิวเตอร์เครื่องอื่นของฉัน:

...
Authentication refused: bad ownership or modes for directory /home/user
...

ตรวจสอบไดเรกทอรีของฉัน:

ls -l /home/user
drwxrwxr-x 142 user user 7.7K 06-19 15:45 /home/user/

สิทธิ์ที่ถูกต้องควรเป็น:

chmod 750 /home/user

หลังจากนั้นฉันก็เริ่มทำงานแล้ว


0

คุณเพิ่มลายนิ้วมือจาก computer1 ไปยัง.ssh/authorized_keyscomputer2 หรือไม่?

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


สำหรับจุดที่สองของคุณนั่นคือเหตุผลที่กุญแจควรมีรหัสผ่านเสมอ โปรดดูsuperuser.com/questions/121307/
Benjamin Bannier

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

ลองตั้งค่าระดับการบันทึก sshd เป็น DEBUG บน computer2 หลังจากพยายามเชื่อมต่อล้มเหลวควรอธิบายสาเหตุที่ถูกปฏิเสธกุญแจ
Daenyth

ฉันไม่สามารถรับข้อมูลใด ๆ ในฝั่งไคลเอ็นต์โดยใช้ '-v -v -v' มีวิธีอื่นไหม
cmcginty

ดูบันทึกในฝั่งเซิร์ฟเวอร์ มันน่าจะอยู่ใน/var/log/secureหรือ/var/log/auth.log... ลองมองไปรอบ ๆ คุณควรจะเห็นมัน ตั้งค่าระดับการบันทึก sshd เป็น DEBUG ในsshd_config
Daenyth

0

สิ่งหนึ่งที่ต้องตรวจสอบเพิ่มเติมนอกเหนือจากคำตอบของ Daenyth คือการเป็นเจ้าของไฟล์และการอนุญาตภายในไดเรกทอรี ~ / .ssh ของคุณบนคอมพิวเตอร์ทั้งสองเครื่อง

ตรวจสอบให้แน่ใจว่าคุณได้ตั้งค่าเป็นผู้ใช้สำหรับไฟล์ทั้งหมดในไดเรกทอรีนั้น: chown *USERNAME*: ~/.ssh/*

ตรวจสอบด้วยว่าการอนุญาตนั้นผู้ใช้ของคุณสามารถอ่านและเขียนไฟล์ได้ แต่ไม่สามารถเข้าถึงได้โดยกลุ่มหรืออื่น ๆ :chmod 600 ~/.ssh/*


ครับไฟล์และ. ssh dir เป็นของฉันสิทธิ์ทั้งหมดตั้งเป็น 600
cmcginty

-1

โฮมไดเรกทอรีไม่สามารถเป็นโลกหรือกลุ่มที่สามารถเขียนได้ไม่เพียง แต่. ssh dir และไฟล์หากไฟล์ sshd_config ของคุณมี StrictModes = ใช่

ทดสอบโดยการเปลี่ยน StrictModes = no แล้วรีสตาร์ท sshd daemon


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