ส่วนที่สำคัญที่สุดของการเพิ่มรหัสอย่างปลอดภัยลงในknown_hosts
ไฟล์คือการได้รับลายนิ้วมือที่สำคัญจากผู้ดูแลเซิร์ฟเวอร์ ลายนิ้วมือที่สำคัญควรมีลักษณะเช่นนี้:
2048 SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8 github.com (RSA)
ในกรณีของ GitHub ปกติเราไม่สามารถพูดคุยกับผู้ดูแลระบบได้โดยตรง อย่างไรก็ตามพวกเขาวางกุญแจบนหน้าเว็บของพวกเขาเพื่อให้เราสามารถกู้คืนข้อมูลจากที่นั่น
การติดตั้งคีย์ด้วยตนเอง
1)คัดลอกคีย์จากเซิร์ฟเวอร์และรับลายนิ้วมือ หมายเหตุ: ทำสิ่งนี้ก่อนตรวจสอบลายนิ้วมือ
$ ssh-keyscan -t rsa github.com | tee github-key-temp | ssh-keygen -lf -
# github.com:22 SSH-2.0-babeld-f3847d63
2048 SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8 github.com (RSA)
2)รับสำเนาของคีย์ลายนิ้วมือจากผู้ดูแลเซิร์ฟเวอร์ - ในกรณีนี้ไปที่หน้าพร้อมข้อมูลใน github.com
- ไปที่ github.com
- ไปที่หน้าช่วยเหลือ (บนเมนูทางด้านขวาหากลงชื่อเข้าใช้; ที่ด้านล่างของโฮมเพจเป็นอย่างอื่น)
- ในการเริ่มต้นส่วนใช้ให้ไปที่เชื่อมต่อกับ GitHub ด้วย SSH
- ไปที่ การทดสอบการเชื่อมต่อ SSH ของคุณ
- คัดลอกลายนิ้วมือ SHA256 จากหน้านั้นลงในโปรแกรมแก้ไขข้อความของคุณเพื่อใช้ในภายหลัง
3)เปรียบเทียบคีย์จากสองแหล่ง
การวางพวกมันไว้เหนือตัวอื่น ๆ ในเท็กซ์เอดิเตอร์ทำให้ง่ายต่อการดูว่ามีอะไรเปลี่ยนแปลงหรือไม่
2048 SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8 github.com (RSA) #key recovered from github website
2048 SHA256:nThbg6kXUpJ3Gl7E1InsaspRomtxdcArLviKaEsTGY8 github.com (RSA) #key recovered with keyscan
(โปรดสังเกตว่าคีย์ที่สองได้รับการจัดการ แต่มันก็ค่อนข้างคล้ายกับต้นฉบับ - ถ้ามีอะไรทำนองนี้เกิดขึ้นคุณกำลังถูกโจมตีอย่างรุนแรงและควรติดต่อผู้เชี่ยวชาญด้านความปลอดภัยที่เชื่อถือได้)
ถ้าปุ่มต่าง ๆ ยกเลิกขั้นตอนและติดต่อกับผู้เชี่ยวชาญด้านความปลอดภัย
4)หากเปรียบเทียบคีย์อย่างถูกต้องคุณควรติดตั้งคีย์ที่คุณดาวน์โหลดไปแล้ว
cat github-key-temp >> ~/.ssh/known_hosts
หรือเพื่อติดตั้งสำหรับผู้ใช้ทั้งหมดในระบบ (ในฐานะรูท):
cat github-key-temp >> /etc/ssh/ssh_known_hosts
การติดตั้งคีย์อัตโนมัติ
หากคุณต้องการเพิ่มคีย์ในระหว่างกระบวนการสร้างคุณควรทำตามขั้นตอนที่ 1-3 ของกระบวนการด้วยตนเองด้านบน
หลังจากนั้นให้ตรวจสอบเนื้อหาของgithub-key-temp
ไฟล์ของคุณและสร้างสคริปต์เพื่อเพิ่มเนื้อหาเหล่านั้นลงในไฟล์โฮสต์ที่คุณรู้จัก
if ! grep github.com ~/.ssh/known_hosts > /dev/null
then
echo "github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==" >> ~/.ssh/known_hosts
fi
ตอนนี้คุณควรกำจัดใด ๆssh
คำสั่งที่มีStrictHostKeyChecking
คนพิการ