ทำไมฉันต้องใช้ sudo สำหรับการพิสูจน์ตัวตนด้วยรหัสสาธารณะของ ssh


3

ฉันไม่สามารถ ssh จากคอมพิวเตอร์ของฉัน (OS X) ไปยังราสเบอร์รี่ pi ของฉัน (ubuntu mate) เว้นแต่ฉันจะใช้ sudo ฉันใช้คีย์สาธารณะ / ส่วนตัวเพื่อตรวจสอบสิทธิ์

พับลิกคีย์ที่เหมาะสมถูกเพิ่มลงในไฟล์ authorized_users บน raspberry pi

สิทธิ์สำหรับไดเรกทอรี. ssh ของฉันคือ 700 สิทธิ์สำหรับไฟล์คีย์ของฉันคือ 600

นี่คือเอาต์พุตจาก ssh พร้อมกับแฟล็ก -v:

debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/username/.ssh/id_rsa
debug1: Authentications that can continue: publickey 
debug1: Trying private key: /Users/username/.ssh/id_dsa
debug1: No more authentication methods to try. Permission denied (publickey).

LS:

-rw------- 1 username staff 3326 May 18 23:24 id_rsa 
-rw-r--r-- 1 username staff 752 May 18 23:24 id_rsa.pub 

.ssh:

drwx------  11 username   staff    374 May 19 21:49 .ssh

คุณได้ตรวจสอบว่าusernameเป็นเจ้าของ.sshและเนื้อหาของมันอย่างแน่นอน?
พอล

@Paul ใช่ผู้ใช้ที่เหมาะสมเป็นเจ้าของไดเรกทอรี. ssh และเนื้อหา
IMerin

และไดเรกทอรี. ssh เอง โปรดแก้ไขหากคุณมีข้อมูลเพิ่มเติมเพื่อเพิ่มคำถาม
Paul

@Paul เพิ่มข้อมูล. ssh แล้ว
IMerin

หยุดเมื่อคุณทำ sudo มันใช้ไดเรกทอรีรูต. ssh คุณชื่อผู้ใช้อะไรเข้าสู่ rpi ด้วย?
พอล

คำตอบ:


1

คุณอาจใช้ร่วมกันที่สำคัญ SSH รากอาจจะโดยการทำเมื่อคุณได้sudo ssh-copy-idตรวจสอบให้แน่ใจว่าusernameกุญแจสาธารณะอยู่ในauthorized_keysที่ปลายทางด้วย


คีย์ใน authorized_users เหมือนกับกุญแจสาธารณะที่ไม่ใช่รูทของฉัน
IMerin

ดังนั้นถ้าคุณบอกว่าmd5sumทั้งคู่id_rsa.pubและauthorized_keysพวกมันเหมือนกันหรือ (สมมติว่าคุณมีเพียงหนึ่งที่สำคัญใน authorized_keys สันนิษฐานว่าการทำงานกับ sudo ก็ควรตรงกับ. /root/.ssh/id_rsa.pubไฟล์เพื่อให้มีทั้งหมด 3 เดียวกันได้หรือไม่
เอริค Renouf

มีหลายคีย์ใน authorized_key ฉันเชื่อว่าปัญหาคือว่าฉันกำลังเข้าสู่ระบบกับรากในราสเบอร์รี่ pi ของฉันเมื่อฉันต้องการที่จะเข้าสู่ระบบในฐานะผู้ใช้ที่เฉพาะเจาะจง ฉันจะเข้าใช้เครื่องทางกายภาพและตรวจสอบไฟล์ authorized_key ของผู้ใช้
IMerin

อาดีเมื่อคุณทำsudoผู้ใช้เริ่มต้นของคุณเพื่อเชื่อมต่อเป็นจะเป็นรากแทนusername
เอริค Renouf

1

ดูเหมือนจะมีการตัดการเชื่อมต่อที่นี่ คุณพูดต่อผู้มีอำนาจ คนอื่นพูดว่า authorized_keys พับลิกคีย์สำหรับผู้ใช้ถูกวางในโฮมไดเร็กทอรีสำหรับผู้ใช้ในไฟล์ชื่อ. ssh / authorized_keys ไม่ใช่. ssh / authorized_users เนื่องจาก ssh ทำงานกับรูทคุณอาจต้องการดูไดเร็กทอรีสำหรับ ~ root / .ssh และสร้างไดเร็กทอรีสำหรับ ~ user_name / .ssh ให้เหมือนกัน - ยกเว้นแน่นอนว่าคีย์จะเป็นคีย์สำหรับผู้ใช้นั้น ไม่ใช่สำหรับรูต


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

1
ผู้ใช้ไม่ควรเป็นเจ้าของไฟล์ใด ๆ ในไดเรกทอรี / etc พวกเขาต้องการสิทธิ์ในการอ่านและดำเนินการสำหรับ / etc / ssh และอ่านการเข้าถึงไฟล์ส่วนใหญ่ในไดเรกทอรีข้อยกเว้นเป็นไฟล์กุญแจส่วนตัวและไฟล์ sshd หากผู้ใช้เป็นเจ้าของไฟล์ใน / etc พวกเขาสามารถให้สิทธิ์ในการเขียนและส่งผลกระทบต่อผู้ใช้ทุกคนในระบบรวมถึงรูท
ฟอง
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.