สิทธิ์ SSH การตั้งค่า Chmod?


63

ฉันต้องใช้ SSH บนเครื่องของฉันเพื่อเข้าถึงเว็บไซต์และฐานข้อมูล (ตั้งค่าลิงก์สัญลักษณ์ - แต่ฉันพูดนอกเรื่อง)

ปัญหาต่อไปนี้: ฉันป้อนคำสั่ง: ssh-keygen -t dsa
เพื่อสร้างคู่คีย์ dsa สาธารณะ / ส่วนตัว ฉันบันทึกไว้ในค่าเริ่มต้น ( /home/user/.ssh/id_dsa): และป้อน Enter วลีรหัสผ่านสองครั้ง

จากนั้นฉันจะได้รับสิ่งนี้กลับมา:

คำเตือน: ไฟล์ลับส่วนตัวที่ไม่มีการป้องกัน!
การอนุญาต 0755 สำหรับ '/home/etc.ssh/id_rsa' นั้นเปิดเกินไป ขอแนะนำให้ผู้อื่นไม่สามารถเข้าถึงไฟล์กุญแจส่วนตัวของคุณได้ คีย์ส่วนตัวนี้จะถูกละเว้น สิทธิ์ที่ไม่ดี: เพิกเฉยคีย์: [จากนั้นเส้นทางไฟล์ใน VAR / LIB / บางแห่ง]

ทีนี้เพื่อหลีกเลี่ยงสิ่งนี้ฉันก็ลอง -

sudo chmod 600 ~/.ssh/id_rsa         sudo chmod 600 ~/.ssh/id_rsa.pub    

could not find .ICEauthority errorแต่ไม่นานหลังจากที่คอมพิวเตอร์ของฉันแข็งขึ้นและในการเข้าสู่ระบบย้อนกลับไปเมื่อมีการ ฉันได้รับปัญหานี้ - และลบไฟล์ SSH แต่ต้องการใช้สิทธิ์ที่ถูกต้องเพื่อหลีกเลี่ยงปัญหาเหล่านี้ในอนาคต ฉันจะตั้งค่า ICEauthority ได้อย่างไรหรือฉันควรบันทึก SSH Keys ไว้ที่ไหนหรือมีสิทธิ์ใดบ้าง การใช้เครื่องเสมือนจะดีที่สุดหรือไม่?

ทั้งหมดนี้เป็นเรื่องใหม่มากและฉันอยู่ในช่วงการเรียนรู้ที่สูงชันดังนั้นความช่วยเหลือใด ๆ ที่ชื่นชม


พิมพ์ผิดขออภัยมีเพียงชุดคีย์หนึ่งชุดเท่านั้นที่ถูกสร้างขึ้น!
crissixpaul

สิทธิ์ในการ. ssh dir มีความสำคัญเท่าเทียมกันกับสิทธิ์ที่สำคัญ มันควรจะเป็น 600 chmod -R 600 ~/.sshเพื่อแก้ไขมันทำงาน:
KWubbufetowicz

4
ที่จริงแล้ว. ssh ไดเรกทอรีอนุญาตจะต้องเป็น 700 ไม่ใช่ 600 สิทธิ์ในการดำเนินการเป็นสิ่งที่ให้คุณเข้าถึงสิ่งที่อยู่ในไดเรกทอรีนั้น ดังนั้นคำสั่งที่ถูกต้องควรเป็นchmod 700 $HOME/.sshและchmod 600 $HOME/.ssh/id_rsa
MelBurslan

ข้อผิดพลาดเกี่ยวกับ. ISO ไม่เกี่ยวข้องกับchmodคำสั่งที่คุณแสดง ไม่ว่าจะเป็นเรื่องบังเอิญหรือคุณใช้คำสั่งอื่นที่คุณไม่ได้แสดงให้เราเห็น
Gilles

คำตอบ:


92

chmod 600 ~/.ssh/id_rsa; chmod 600 ~/.ssh/id_rsa.pub(เช่นchmod u=rw,go= ~/.ssh/id_rsa ~/.ssh/id_rsa.pub) ถูกต้อง

chmod 644 ~/.ssh/id_rsa.pub(เช่นchmod a=r,u+w ~/.ssh/id_rsa.pub) ก็จะถูกต้อง แต่chmod 644 ~/.ssh/id_rsa(เช่นchmod a=r,u+w ~/.ssh/id_rsa) จะไม่เป็นเช่นนั้น กุญแจสาธารณะของคุณสามารถเป็นสาธารณะสิ่งที่สำคัญคือกุญแจส่วนตัวของคุณเป็นส่วนตัว

นอกจากนี้คุณ.sshไดเรกทอรีตัวเองจะต้องสามารถเขียนได้เท่านั้นโดยคุณ: หรือchmod 700 ~/.ssh chmod u=rwx,go= ~/.sshแน่นอนคุณจะต้องสามารถอ่านและเข้าถึงไฟล์ในนั้น (ดำเนินการอนุญาต) ไม่เป็นอันตรายโดยตรงหากผู้อื่นสามารถอ่านได้ แต่ก็ไม่มีประโยชน์เช่นกัน

sudoคุณไม่จำเป็นต้อง อย่าใช้sudoเพื่อจัดการไฟล์ของคุณเองซึ่งสามารถนำไปสู่ข้อผิดพลาดเท่านั้น

ข้อผิดพลาดเกี่ยวกับ.ICEauthorityไม่เกี่ยวข้องกับchmodคำสั่งที่คุณแสดง ไม่ว่าจะเป็นเรื่องบังเอิญหรือคุณใช้คำสั่งอื่นที่คุณไม่ได้แสดงให้เราเห็น


สิทธิ์บน ~ / .ssh / known_hosts ต้องเป็นอย่างไร
nikc

0

ฉันต้องการเพิ่มคำตอบข้างต้นซึ่งสำหรับฉันแล้วโฮมไดเร็กตอรี่ของฉัน ( ~/) จำเป็นต้องมีการอนุญาต755โดยไม่คำนึงถึงการอนุญาต~/.sshและไฟล์ในนั้น (สิ่งนี้อยู่ใน Synology NAS อาจไม่มีผลกับ linux ทั้งหมด)

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