สร้างคีย์ SSH สาธารณะจากคีย์ส่วนตัวหรือไม่


215

สมมติว่าฉันมีรหัส SSH แต่ฉันได้ลบส่วนกุญแจสาธารณะแล้ว ฉันมีส่วนสำคัญส่วนตัว มีวิธีใดบ้างที่ฉันสามารถสร้างรหัสสาธารณะขึ้นมาใหม่ได้

คำตอบ:


253

ใช้ตัวเลือก -y เพื่อ ssh-keygen:

ssh-keygen -f ~/.ssh/id_rsa -y > ~/.ssh/id_rsa.pub

จาก 'man ssh-keygen'

 -y      This option will read a private OpenSSH format file and print an
         OpenSSH public key to stdout.

ระบุไพรเวตคีย์ด้วยตัวเลือก -f คุณอาจเป็น dsa แทน rsa ชื่อของรหัสส่วนตัวของคุณอาจมีชื่อที่คุณใช้ รหัสสาธารณะที่สร้างขึ้นใหม่ควรเป็นรหัสเดียวกับที่คุณสร้างขึ้นก่อนหน้านี้


7
ทำไม "-t dsa" กุญแจของ OP คือ rsa ไหม ฉันจะกำจัด -t และใช้ -f แทน
innaM

1
จุดดีอัปเดตตามลำดับ
Kyle Brandt

ใช่ฉัน แต่เดิมคือ RSA
Rory

1
ใน Mac OSX 10.9.3 Mavericks ฉันได้รับ 'load failed' หลังจากเรียกใช้คำสั่ง ฉันจะแก้ปัญหานี้ได้อย่างไร
Hyperfocus

ฉันคิดว่าคุณอาจใช้ขั้นตอนนี้ไปอีกขั้นด้วยพารามิเตอร์ -N ในกรณีที่รหัสส่วนตัวได้รับการป้องกันด้วยรหัสผ่าน:ssh-keygen -f ~/.ssh/id_rsa -y -N "$PASSWORD" > ~/.ssh/id_rsa.pub
ken

6

โซลูชันมีไว้สำหรับผู้ใช้ที่ใช้ Windows โดยเฉพาะ

เครื่องมือที่ใช้:

  • Puttygen (PuTTY Key Generator)
  • WinSCP

ขั้นตอนในการดำเนินการ:

  1. เปิดตัวสร้างคีย์ PuTTY
  2. โหลดคีย์ส่วนตัวของคุณ ( *.ppkไฟล์)
  3. คัดลอกข้อมูลพับลิกคีย์ของคุณจากส่วน "พับลิกคีย์สำหรับการวางลงในไฟล์ OpenSSH authorized_keys" ของ PuTTY Key Generator และวางข้อมูลคีย์ไปยังไฟล์ "authorized_keys" (โดยใช้ notepad) หากคุณต้องการใช้

สแนปชอตแสดงส่วนของ Puttygen ที่จะมุ่งเน้น:

สแนปชอตแสดงส่วนของ Puttygen ที่จะโฟกัส


อ่านเพิ่มเติม: askubuntu.com/questions/53553/…
devprashant

Puttygen ยังสามารถ 'นำเข้า' OpenSSH (จริง ๆ แล้ว OpenSSL-legacy) และคีย์ส่วนตัวในรูปแบบ SSHCOM และแม้ว่าจะมีต้นกำเนิดมาจาก Windows แต่ก็มีการส่งไปยัง Unix และรุ่น Unix puttygenเป็นโปรแกรม commandline (ไม่ใช่ GUI) ดูตัวอย่างlinux.die.net/man/1/puttygen
dave_thompson_085
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.