Câu hỏi Làm cách nào để chuyển đổi khóa .ppk thành khóa OpenSSH trong Linux?


Tôi biết rằng có thể chuyển đổi .ppk dưới puttygen trong Windows, nhưng làm thế nào để làm điều đó trên Linux? Điều này có thể không?


157
2018-01-12 17:56


gốc




Các câu trả lời:


Làm điều đó với Putty.

  • Linux: với trình quản lý gói của bạn, cài đặt PuTTY (hoặc các công cụ PuTTY tối thiểu):

    • Ubuntu sudo apt-get install putty-tools
    • Giống Debian apt-get install putty-tools
    • Dựa trên RPM yum install putty
    • Gentoo emerge putty
    • Archlinux sudo pacman -S putty
    • v.v.
  • OS X: cài đặt, dựng lên Homebrew, sau đó chạy brew install putty

Đặt khóa của bạn vào một số thư mục, ví dụ: thư mục chính của bạn. Bây giờ chuyển đổi các khóa PPK thành SSH keypairs: tìm kiếm bộ nhớ cache

Để tạo riêng tư Chìa khóa:

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

và tạo ra công cộng Chìa khóa:

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

Di chuyển các phím này đến ~/.ssh và đảm bảo các quyền được đặt thành riêng tư cho khóa cá nhân của bạn:

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

Nếu bạn đã cố gắng thực hiện một 'git clone'hoạt động bạn có thể cần phải làm điều này cũng

chmod 666 ~/.ssh/known_hosts

231
2018-01-12 18:03



hi tôi đã có một .pub sau đó nó là cần phải tạo khóa công khai một lần nữa - Amit Bera
Nếu bạn đến đây tìm cách để làm điều đó trong cửa sổ, hãy chạy "puttygen yourkey.ppk", và sau đó trong trình đơn Chuyển đổi, hãy chọn "Xuất khóa OpenSSH" để lấy khóa riêng. - Ryan Shillington
giải pháp từ @jous đẹp hơn nhiều vì bạn không cần khóa riêng để chuyển đổi khóa công cộng + bạn không cần phải cài đặt putty - Tobi
Tôi phải thêm chìa khóa này vào ./ssh/config tập tin Host mysite.com Hostname mysite.com IdentityFile ~/.ssh/id_dsa IdentitiesOnly yes - vladkras
Một số định dạng đường cong elip (ECDS vv) chỉ có sẵn trong các công cụ putty beta. - DanFromGermany


ssh-keygen -i -f id_dsa_1024_a.pub > id_dsa_1024_a_openssh.pub
  • -i flag được nhập từ định dạng khác ngoài định dạng openssh
  • -f cờ có nghĩa là đọc từ tập tin đầu vào

Nguồn: a bài viết trên blog tại burnz.wordpress.com


34
2018-03-06 14:53



Các tệp .ppk là các cặp khóa đầy đủ, tôi không nghĩ lệnh trên hoặc bài đăng trên blog áp dụng cho điều đó. - Peter Becker
Tôi nghĩ rằng tôi có nghĩa là nó hoạt động nếu bạn sử dụng nút "Save public key" của puttygen. ssh-keygen không hiểu các tệp .ppk thực sự vì chúng thiếu các dấu '---- BEGIN SSH2 PUBLIC KEY ----'. Bạn có thể tìm thấy khóa công khai trong tệp .ppk giữa các dòng "Public-Lines: .." và "Private-Lines: ..". - jous
Điều này làm việc cho tôi với một tập tin khóa công khai - puttygen dường như yêu cầu một khóa riêng. có vẻ như tất cả những gì nó đã làm là sắp xếp lại phần base-64 thành một dòng - Jasen
Điều này dường như không bao gồm khóa riêng tư, đó là lý do tại sao tôi muốn thực hiện chuyển đổi, tôi đã có khóa công cộng được lưu ở đâu đó ... - Gert van den Berg


Nhận khóa riêng:

mở tệp .ppk trong puttygen:

puttygen ~/.ssh/id_dsa.ppk

xuất dưới dạng openssh:

Chuyển đổi → Xuất khóa OpenSSH

Lấy khóa công khai:

mở như trước khóa riêng với puttygen, khóa công khai nằm trong khóa công khai để dán vào tệp shared_keys OpenSSH


5
2017-10-15 08:47





Tôi đã chuẩn bị một thùng chứa Docker để làm cho cuộc sống đơn giản hơn:

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

Ở đâu:

  • /path/to/file.ppk - đường dẫn cục bộ đến tệp ppk của bạn
  • /path/to/output - đường dẫn địa phương đến nơi đặt khóa riêng và khóa công cộng

3
2018-03-07 11:43



tuyệt quá. thx cho hình ảnh! tuy nhiên trong khi đó --volume=/path/to/file.ppk:/tmp/id.ppk và không id_dsa.ppk - pHiL