วิธีการแปลง. pkk เป็น OpenSSH ใน Linux


188

ฉันรู้ว่าเป็นไปได้ในการแปลง. ppt ภายใต้ puttygen ใน Windows แต่จะทำอย่างไรกับ Linux? เป็นไปได้ไหม

คำตอบ:


275

ทำด้วยสีโป๊ว

  • Linux:กับผู้จัดการแพคเกจของคุณติดตั้ง PuTTY (หรือเครื่องมือ PuTTY ขั้นต่ำ):

    • อูบุนตู sudo apt-get install putty-tools
    • Debian เหมือน apt-get install putty-tools
    • ขึ้นอยู่กับ RPM yum install putty
    • Gentoo emerge putty
    • ArchLinux sudo pacman -S putty
    • เป็นต้น
  • OS X:ติดตั้งHomebrewจากนั้นเรียกใช้brew install putty

วางกุญแจของคุณในไดเรกทอรีเช่นโฟลเดอร์บ้านของคุณ ตอนนี้แปลงคีย์ PPK เป็น SSH keypairs: การค้นหาแคช

วิธีสร้างไพรเวตคีย์:

cd ~
puttygen id_dsa.ppk -O private-openssh -o id_dsa

และเพื่อสร้างกุญแจสาธารณะ :

puttygen id_dsa.ppk -O public-openssh -o id_dsa.pub

ย้ายคีย์เหล่านี้ไปที่~/.sshและตรวจสอบให้แน่ใจว่าการอนุญาตถูกตั้งค่าเป็นส่วนตัวสำหรับคีย์ส่วนตัวของคุณ:

mkdir -p ~/.ssh
mv -i ~/id_dsa* ~/.ssh
chmod 600 ~/.ssh/id_dsa
chmod 666 ~/.ssh/id_dsa.pub

หากคุณได้ลองใช้งาน ' git clone ' แล้วคุณอาจต้องทำเช่นนี้

chmod 666 ~/.ssh/known_hosts

สวัสดีฉันมี. pub อยู่แล้วดังนั้นจึงจำเป็นต้องสร้างรหัสสาธารณะอีกครั้ง
Amit Bera

1
หากคุณมาที่นี่เพื่อค้นหาวิธีการใช้งานใน windows ให้รัน "puttygen yourkey.ppk" จากนั้นภายใต้เมนู Conversion เลือก "ส่งออกคีย์ OpenSSH" เพื่อรับคีย์ส่วนตัว
Ryan Shillington

1
วิธีการแก้ปัญหาจาก @jous นั้นดีกว่าเพราะคุณไม่จำเป็นต้องใช้กุญแจส่วนตัวในการแปลงกุญแจสาธารณะ + คุณไม่จำเป็นต้องติดตั้งสีโป๊ว
Tobi

ผมต้องเพิ่มปุ่มนี้เพื่อฉัน./ssh/configไฟล์ Host mysite.com Hostname mysite.com IdentityFile ~/.ssh/id_dsa IdentitiesOnly yes
vladkras

รูปแบบโค้งรูปไข่บางรูปแบบ (ECDS และอื่น ๆ ) มีให้บริการเฉพาะในเครื่องมือโป๊วรุ่นเบต้าเท่านั้น
Daniel W.

39
ssh-keygen -i -f id_dsa_1024_a.pub > id_dsa_1024_a_openssh.pub
  • -i flag นำเข้าจากที่อื่นนอกจากรูปแบบ openssh
  • -f flag หมายถึงอ่านจากไฟล์อินพุต

ที่มา: บล็อกโพสต์ที่ burnz.wordpress.com


17
ไฟล์. pk เป็นคู่คีย์เต็มฉันไม่คิดว่าคำสั่งด้านบนหรือโพสต์บล็อกใช้กับสิ่งนั้น
Peter Becker

2
ฉันคิดว่าฉันหมายความว่ามันใช้งานได้ถ้าคุณใช้ปุ่ม "บันทึกกุญแจสาธารณะ" ของ puttygen ssh-keygen ไม่เข้าใจไฟล์. ppt จริงเพราะไม่มีเครื่องหมาย '---- BEGIN SSH2 พับลิกคีย์ ----' คุณสามารถค้นหาคีย์สาธารณะในไฟล์. pkk ระหว่างบรรทัด "Public-Lines: .. " และ "Private-Lines: .. "
jous

1
สิ่งนี้ใช้ได้กับฉันด้วยไฟล์กุญแจสาธารณะ - puttygen ดูเหมือนจะต้องใช้รหัสส่วนตัว ดูเหมือนว่าทุกอย่างที่มันทำนั้นได้ทำการจัดเรียงส่วนของ 64 ใหม่ให้เป็นบรรทัดเดียว
Jasen

2
นี้ดูเหมือนจะไม่ครอบคลุมคีย์ส่วนตัวซึ่งเป็นเหตุผลที่ฉันต้องการจะทำแปลงที่ฉันมีกุญแจสาธารณะที่บันทึกไว้ที่ไหนสักแห่ง ...
Gert van den Berg

ใช่ไฟล์ PPK ผมเคยเห็นมีเครื่องหมายที่เหมาะสมและนี้ได้ทำงานเพียงแค่ปรับ
tylerl

5

รับรหัสส่วนตัว:

เปิดไฟล์. pkk ใน puttygen:

puttygen ~/.ssh/id_dsa.ppk

ส่งออกเป็น openssh:

การแปลง→ส่งออกคีย์ OpenSSH

รับกุญแจสาธารณะ:

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


4

ฉันเตรียมคอนเทนเนอร์ Docker เพื่อทำให้ชีวิตง่ายขึ้น:

docker run --rm \
           --volume=/path/to/file.ppk:/tmp/id_dsa.ppk \
           --volume=/path/to/output:/tmp/out/ \
           czerasz/putty-tools

ที่ไหน:

  • /path/to/file.ppk - พา ธ ท้องถิ่นไปยังไฟล์ PPK ของคุณ
  • /path/to/output - เส้นทางท้องถิ่นที่ควรวางกุญแจส่วนตัวและกุญแจสาธารณะ

1
ยิ่งใหญ่ ขอบคุณสำหรับภาพ! แต่ในขณะเดียวกันมัน--volume=/path/to/file.ppk:/tmp/id.ppkและไม่ได้id_dsa.ppk
ฟิล
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.