วิธีใช้ ssh-keygen เพื่อสร้าง SSH Key

How Use Ssh Keygen Generate An Ssh Key



SSH หรือ Secure Shell เป็นโปรโตคอลเข้ารหัสที่มีประโยชน์ในการรักษาความปลอดภัยการเชื่อมต่อระหว่างไคลเอนต์และเซิร์ฟเวอร์สำหรับงานดูแลระบบต่างๆ รองรับระบบการรับรองความถูกต้องประเภทต่างๆ ส่วนใหญ่จะใช้การรับรองความถูกต้องตามคีย์สาธารณะและการรับรองความถูกต้องด้วยรหัสผ่าน การรับรองความถูกต้องด้วยคีย์มีความปลอดภัยมากกว่าการตรวจสอบโดยใช้รหัสผ่าน คู่คีย์การตรวจสอบสิทธิ์สำหรับ SSH สร้างขึ้นโดยเครื่องมือ ssh-keygen ที่สามารถใช้เพื่อวัตถุประสงค์ที่แตกต่างกัน เช่น การตรวจสอบสิทธิ์โฮสต์ การเข้าสู่ระบบอัตโนมัติ ฯลฯ วิธีการใช้เครื่องมือนี้ใน Ubuntu ได้แสดงไว้ในบทช่วยสอนนี้

ไวยากรณ์:

ไวยากรณ์ของคำสั่งนี้ได้รับด้านล่าง รองรับตัวเลือกมากมายสำหรับการสร้างคู่คีย์การรับรองความถูกต้องที่ได้อธิบายไว้ในภายหลัง







ssh-keygen [-NS] [-b บิต] [-วิธีที่ว่า] [-f output_keyfile] [-m รูปแบบ]

[-t dsa|ecdsa|ecdsa-sk|ed25519|ed25519-sk|รสา]

[-N new_passphrase] [-O ตัวเลือก] [-w ผู้ให้บริการ]

ตัวเลือกต่าง ๆ ของ ssh-keygen:

วัตถุประสงค์ของการใช้ตัวเลือก ssh-keygen ประเภทต่างๆ ได้อธิบายไว้ด้านล่าง



ตัวเลือก วัตถุประสงค์
-ถึง มันสร้างโฮสต์คีย์ด้วยพาธไฟล์คีย์ดีฟอลต์ วลีรหัสผ่านที่ว่างเปล่า บิตเริ่มต้นสำหรับประเภทคีย์ และความคิดเห็น
-b บิต ใช้เพื่อกำหนดจำนวนบิตในคีย์ที่จะสร้าง
-วิธีที่ว่า ใช้เพื่อกำหนดความคิดเห็นใหม่
-ค ใช้เพื่อขอเปลี่ยนความคิดเห็นของไฟล์คีย์สาธารณะและส่วนตัว
-E ลายนิ้วมือ_hash ใช้เพื่อกำหนดอัลกอริธึมแฮชที่จะใช้เพื่อแสดงลายนิ้วมือ
-และ ใช้เพื่ออ่านไฟล์ไพรเวตหรือพับลิกคีย์ และพิมพ์ไปยัง stdout
-F ชื่อโฮสต์ | [ชื่อโฮสต์]: port ใช้เพื่อค้นหาชื่อโฮสต์เฉพาะด้วยหมายเลขพอร์ตเสริมในไฟล์ที่รู้จัก_hosts
-f ชื่อไฟล์ ใช้เพื่อกำหนดชื่อไฟล์ของไฟล์คีย์
-ชม ใช้เพื่อแฮชไฟล์ known_hosts จะแทนที่ชื่อโฮสต์และที่อยู่ทั้งหมดด้วยการแสดงแทนแฮชภายในไฟล์ที่ระบุ เนื้อหาต้นฉบับจะถูกย้ายไปยังไฟล์ที่มีนามสกุล .old
-ผม ใช้เพื่ออ่านไฟล์คีย์ส่วนตัว (หรือสาธารณะ) ที่ไม่ได้เข้ารหัส
-NS ใช้สำหรับพิมพ์เนื้อหาของใบรับรองตั้งแต่หนึ่งรายการขึ้นไป
-NS ใช้เพื่อแสดงลายนิ้วมือของไฟล์คีย์สาธารณะที่ระบุ
-N new_passphrase ใช้เพื่อระบุข้อความรหัสผ่านใหม่
-P ข้อความรหัสผ่าน ใช้เพื่อระบุข้อความรหัสผ่านเก่า
-t dsa | ecdsa | ecdsa-sk | ed25519 | ed25519-sk | รสา ใช้เพื่อกำหนดประเภทของคีย์ที่จะสร้าง

สร้างคีย์โดยใช้ ssh-keygen:

คุณสามารถสร้างคู่คีย์ SSH ได้โดยการเรียกใช้ ssh-keygen พร้อมตัวเลือกหรือไม่มีตัวเลือกใดๆ วิธีต่างๆ ในการสร้างคู่คีย์ SSH ได้แสดงไว้ในส่วนนี้ของบทช่วยสอนนี้ คุณต้องลงชื่อเข้าใช้เครื่องเซิร์ฟเวอร์ที่ติดตั้ง OpenSSH เพื่อสร้างคีย์



สร้างคู่คีย์โดยไม่มีตัวเลือก:

คำสั่งต่อไปนี้จะสร้างคู่คีย์โดยไม่ต้องใช้ตัวเลือกใดๆ





$ssh-keygen

หลังจากดำเนินการคำสั่งข้างต้น คุณสามารถระบุชื่อไฟล์ที่จะบันทึกคีย์หรือกดปุ่ม Enter เพื่อบันทึกชื่อไฟล์เริ่มต้น ที่นี่มีการกดปุ่ม Enter ถัดไป คุณสามารถกดปุ่ม Enter อีกครั้งเพื่อตั้งรหัสผ่านเปล่าหรือตั้งรหัสผ่าน



สร้างคู่คีย์ด้วยตัวเลือกเดียว:

คำสั่งต่อไปนี้จะสร้างคู่คีย์ของประเภท rsa ที่กล่าวถึงในคำสั่งด้วยตัวเลือก -t

$ssh-keygen -NSรสา

เช่นเดียวกับคำสั่งก่อนหน้านี้ คุณสามารถระบุชื่อไฟล์หรือใช้ชื่อไฟล์เริ่มต้นสำหรับจัดเก็บคู่คีย์และตั้งรหัสผ่านหรือรหัสผ่านว่างสำหรับการเชื่อมต่อ SSH

สร้างคู่คีย์ที่มีหลายตัวเลือก:

เรียกใช้คำสั่งต่อไปนี้เพื่อสร้างคู่คีย์ของประเภท rsa ด้วย 2000 บิตและค่าความคิดเห็น[ป้องกันอีเมล].

$ssh-keygen -NSรสา-NS 2000 -ค ' [ป้องกันอีเมล] '

เช่นเดียวกับคำสั่งก่อนหน้านี้ คุณสามารถระบุชื่อไฟล์หรือใช้ชื่อไฟล์เริ่มต้นสำหรับจัดเก็บคู่คีย์และตั้งรหัสผ่านหรือรหัสผ่านว่างสำหรับการเชื่อมต่อ SSH หากคุณสร้างไฟล์คีย์ก่อนที่จะรันคำสั่งดังกล่าว ระบบจะขอให้คุณเขียนทับไฟล์คีย์หรือไม่ หากคุณพิมพ์ 'y' ระบบจะเขียนทับไฟล์ที่สร้างไว้ก่อนหน้านี้ด้วยคีย์ใหม่

คัดลอกกุญแจสาธารณะไปยังเซิร์ฟเวอร์:

เรียกใช้คำสั่งต่อไปนี้จากเครื่องเซิร์ฟเวอร์เพื่อเพิ่มคีย์สาธารณะลงในเครื่องเซิร์ฟเวอร์ คำสั่งจะคัดลอกคีย์ไปยังเซิร์ฟเวอร์และกำหนดค่าให้เพิ่มคีย์ลงในไฟล์ authorized_keys เพื่อเข้าถึงเซิร์ฟเวอร์

$ssh-copy-id-ผม~/.ssh/id_rsa fahmida@fahmida-VirtualBox

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหากไม่ได้เพิ่มคีย์สาธารณะลงในเครื่องเซิร์ฟเวอร์ก่อน

แก้ไขไฟล์กำหนดค่าของเซิร์ฟเวอร์:

คุณต้องเปิดใช้งานตัวเลือกบางอย่างในไฟล์การกำหนดค่าของเครื่องเซิร์ฟเวอร์ หากคุณต้องการตั้งค่าการตรวจสอบสิทธิ์โดยใช้รหัสผ่านและอนุญาตให้ผู้ใช้ root ล็อกอินของเซิร์ฟเวอร์ เส้นทางของไฟล์การกำหนดค่า SSH ของเซิร์ฟเวอร์คือ /etc/ssh/sshd_config เปิดไฟล์ในโปรแกรมแก้ไขข้อความ เรียกใช้คำสั่งต่อไปนี้เพื่อแก้ไขไฟล์ในโปรแกรมแก้ไขนาโน

$sudo นาโน /ฯลฯ/ssh/sshd_config

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

การตรวจสอบรหัสผ่านใช่

PermitRootLoginใช่

บันทึกและปิดไฟล์ เรียกใช้คำสั่งต่อไปนี้เพื่อเริ่มบริการ SSH ใหม่

$sudosystemctl รีสตาร์ทssh

เข้าสู่ระบบจากไคลเอ็นต์ SSH:

เข้าสู่ระบบเครื่องไคลเอนต์จากตำแหน่งที่คุณต้องการเชื่อมต่อกับเซิร์ฟเวอร์เพื่อตรวจสอบว่าการเชื่อมต่อ SSH ทำงานหรือไม่ เปิดเทอร์มินัลแล้วรันคำสั่งต่อไปนี้เพื่อเพิ่มข้อมูลประจำตัวของเครื่องเซิร์ฟเวอร์

$ssh-add

รันคำสั่ง ssh ต่อไปนี้เพื่อเชื่อมต่อกับเครื่องเซิร์ฟเวอร์จากเครื่องไคลเอนต์ มีการเปิดใช้งานการตรวจสอบรหัสผ่านและการเข้าสู่ระบบรูทในไฟล์การกำหนดค่า SSH ของเซิร์ฟเวอร์ในส่วนก่อนหน้าของบทช่วยสอนนี้ ดังนั้น ผู้ใช้ต้องระบุรหัสผ่านรูทที่ถูกต้องของเครื่องเซิร์ฟเวอร์เพื่อสร้างการเชื่อมต่อ SSH ได้สำเร็จ

$ssh <ถึงhref='mailto: [ป้องกันอีเมล] '>ฟามิดา@10.0.2.15

เอาต์พุตที่คล้ายกันต่อไปนี้จะปรากฏขึ้นหลังจากสร้างการเชื่อมต่อ SSH จากไคลเอนต์ไปยังเซิร์ฟเวอร์

บทสรุป:

ssh-keygen ใช้สร้างคู่คีย์ SSH ด้วยวิธีต่างๆ ได้อธิบายไว้ในบทช่วยสอนนี้ ฉันหวังว่าผู้ใช้ Ubuntu จะสร้างคีย์ SSH โดยใช้ ssh-keygen เพื่อสร้างการเชื่อมต่อ SSH หลังจากอ่านบทช่วยสอนนี้