สาเหตุหลักๆที่ทำให้ Login เข้า Server ไม่ได้
1.known_hosts
known_hosts คือ log การ เข้า server ที่คอมพิวเตอร์ หรือ เครื่องที่ใช้ในการเชื่อมต่อ ได้ทำการเก็บ log ไว้ เปลี่ยนเสมือนมันเป็น cache
อ้าว !? แล้วทำไมเป็นสาเหตุถึง login เข้า server ไม่ได้ เพราะว่าการเก็บ log ของ known_hosts เกิดเต็ม ขึ้นมาเลยทำให้ไม่สามารถ login ได้นั่นเอง ถ้าทำการแก้ไข ไฟล์นั้นจะมีผลกระทบอะไรมั้ย? มีแน่นอน ถ้าสมมุติ login server อื่นอยู่ขณะที่ทำการแก้ไขไฟล์ known_hosts จะทำให้ login server นั้นๆ ออก หรือ หลุดทันที แต่ถ้าไม่มีการlogin อะไรในขณะนั้นจะไม่มีผลกระทบครัชชช2.permission ของ key
error ที่พบส่วนใหญ่ จะเป็นรูปแบบตามภาพด้านล่าง ซึ่งจะเห็นได้ว่า permissions นั้น แสดงเป็นเลข 0777 ซึ่งไม่ใช่ permissions ที่ถูกต้องของ key ( permission ของ key ควรจะเป็น 400 ครับ )
permission ของ key ควรจะเป็น 400
วิธีแก้ปัญหา
1.ขั้นตอนแรก ในเครื่องคอมพิวเตอร์ที่จะใช้ login มันจะมีการจดจำว่าเคยเข้าไว้ที่ไหน และทำให้เราไม่สามารถเข้าได้ วิธีแก้คือลบไฟล์ known_hosts หรือ clear log ภายในก่อน วิธี clear log ภายใน สำหรับ mac
echo “” > ~/.ssh/known_hostsวิธี clear log ภายใน สำหรับ linux
cat /dev/null > /.ssh/known_hostsหากทำตามวิธีด้านบนแล้วยังไม่สามารถ Login เข้า Server ได้ ให้ทำการลบไฟล์ ภายใน สำหรับ linux หรือ mac (ต้องอยู่ในpath)
rm known_hosts2. ทำการแก้ไข permission error โดยการใช้คำสั่ง
chmod 400 <key>
Source: https://ubuntuforums.org/showthread.php?t=2204411