ওপেনএসএইচ প্রাইভেট কীটি এসএসএইচ 2 ব্যক্তিগত কীতে রূপান্তর করুন


29

বিদ্যমান জোড়ায় ওপেনএসএসএইচ কীগুলিকে এসএসএইচ 2 (ssh.com ফর্ম্যাট) জোড়ের কীগুলিতে রূপান্তর করার কোনও উপায় আছে?

ইউপিডি : যেহেতু ssh-keygenহঠাৎ করেই হাজির হয়েছে সে সম্পর্কে কিছু উত্তর রয়েছে , তাই আমি কোথা থেকে এসেছি তা ব্যাখ্যা করব ("আপনি কী চেষ্টা করেছেন?") এটির একটি চমৎকার উত্তর হবে।

$> diff --report-identical-files <(ssh-keygen -e -f ~/.ssh/id_dsa) <(ssh-keygen -e -f ~/.ssh/id_dsa.pub)
Files /tmp/zshAGGWAK and /tmp/zshPZiIr6 are identical

অন্য কথায়, ssh-keygenব্যক্তিগত এবং জনসাধারণের ইনপুট কীগুলির জন্য একই কীগুলি ফেরত দেয় (মূল ফাইলগুলির হ্যাশগুলি স্পষ্টতই পৃথক, আমি তাদের বৈধ বেসরকারী এবং সর্বজনীন কীগুলি নিশ্চিত করার জন্য দুটিবার পরীক্ষা করেছি)। দেখে মনে হচ্ছে এটি ssh-keygenব্যক্তিগত বা সর্বজনীন ইনপুট কীটির জন্য কেবল সর্বজনীন কী উত্পন্ন করে।

আমি এটা ভুল করছি বা এটি একটি সাধারণ আচরণ?

উত্তর:


43

এই টিউটোরিয়াল শিরোনাম: এসএসএইচ: ওপেনএসএসএইচকে এসএসএইচ 2 তে রূপান্তর করুন এবং উইস বিপরীতে আপনি যা খুঁজছেন তা প্রস্তাবিত হয়।

ওপেনএসএইচ কীটি এসএসএইচ 2 কীতে রূপান্তর করুন

ssh-keygenরিমোট মেশিনে এসএসএইচ 2 এর প্রয়োজনীয় ফর্ম্যাটে রূপান্তর করতে আপনার ওপেনএসএসএইচ পাবলিক কীতে ওপেনএসএসএইচ সংস্করণটি চালান । ওপেনএসএসএইচ চলমান সিস্টেমে এটি করা আবশ্যক।

$ ssh-keygen -e -f ~/.ssh/id_dsa.pub > ~/.ssh/id_dsa_ssh2.pub

ওপেনএসএইচ কীতে এসএসএইচ 2 কী রূপান্তর করুন

ssh-keygenওপেনএসএসএইচ প্রয়োজনীয় ফর্ম্যাটে রূপান্তর করতে আপনার ssh2 সর্বজনীন কীতে ওপেনএসএসএইচ সংস্করণটি চালান । ওপেনএসএসএইচ চলমান সিস্টেমে এটি করা দরকার।

$ ssh-keygen -i -f ~/.ssh/id_dsa_1024_a.pub > ~/.ssh/id_dsa_1024_a_openssh.pub

টিউটোরিয়ালটি দেখায় যে কীভাবে উভয়ই বিভিন্ন ধরণের কী তৈরি করতে হয় এবং কীভাবে সেগুলি অন্য ফর্ম্যাটে রফতানি করতে হয়।

এটি ব্যক্তিগত এবং সর্বজনীন কীগুলির জন্য ব্যবহার করবেন?

ম্যান পেজ অনুসারে, উত্তরটি হ্যাঁ হবে। এর জন্য ম্যান পেজটি স্যুইচ করার ssh-keygenজন্য নিম্নলিখিতটি জানিয়েছে -e:

 -e    This option will read a private or public OpenSSH key file and print
       the key in RFC 4716 SSH Public Key File Format to stdout.  This option
       allows exporting keys for use by several commercial SSH implementations.

তবে অনুশীলনে এটি প্রদর্শিত হবে যা ssh-keygenব্যক্তিগত কীগুলি রূপান্তর করতে পারে না, কেবলমাত্র পাবলিকগুলি।

উদাহরণ স্বরূপ:

# Make a new RSA key-pair
$ ssh-keygen -t rsa -f newkey

# attempt to extract the private key
$ ssh-keygen -e -f newkey > newkey_e

# attempt to extract the public key
$ ssh-keygen -e -f newkey.pub > newkey.pub_e

# Notice the supposed extracted private key (newkey_e) and the corresponding extracted public key (newkey.pub_e) have identical `md5sum`'s.
$ for i in *;do md5sum $i;done
d1bd1c12c4a2b9fee4b5f8f83150cf1a  newkey
8b67a7be646918afc7a041119e863be5  newkey_e
13947789d5dcc5322768bd8a2d3f562a  newkey.pub
8b67a7be646918afc7a041119e863be5  newkey.pub_e

ফলিত নিষ্কাশিত কীগুলি এটিকে নিশ্চিত করে:

$ grep BEGIN newkey_e newkey.pub_e 
newkey_e:---- BEGIN SSH2 PUBLIC KEY ----
newkey.pub_e:---- BEGIN SSH2 PUBLIC KEY ----

কিছুটা গুগল করা আমি শিরোনাম একটি নিবন্ধ থেকে এই ব্লার্ব জুড়ে এসেছি: আপনি কীভাবে ওপেনএসএইচ প্রাইভেট কী ফাইলগুলিকে এসএসএচে রূপান্তর করবেন । সাইটটি উপরে এবং নিচে বলে মনে হয়েছিল তবে এই পৃষ্ঠার জন্য গুগলের ক্যাশে সন্ধান করে আমি নিম্নলিখিত ব্লার্ব পেয়েছি:

আপনি কীভাবে ওপেনএসএইচ প্রাইভেট কী কী ফাইলগুলিকে এসএসএইচ.কম প্রাইভেট কী ফাইলগুলিতে রূপান্তর করবেন?

এটি বেশিরভাগ মানব পৃষ্ঠাগুলি বলতে পারে যদিও এটি ssh-keygen প্রোগ্রাম দ্বারা করা যায় না। তারা এটিকে নিরুৎসাহিত করে যাতে আপনি একাধিক সার্বজনীন কী ব্যবহার করবেন। একমাত্র সমস্যা হ'ল আরসিএফ আপনাকে একাধিক পাবলিক কী নিবন্ধভুক্ত করতে দেয় না।

প্রবন্ধের ব্যবহারের মাধ্যমে একটি ssh.com ব্যক্তিগত কী করার জন্য একটি OpenSSH ব্যক্তিগত কী রূপান্তরের জন্য একটি পদ্ধতি আবরণ যায় পুটিং এর puttygen হাতিয়ার। দ্রষ্টব্য: puttygen উইন্ডোজ ও লিনাক্স থেকে চালানো যেতে পারে।

'পুটটিজেন' খুলুন এবং একটি 2048 বিট আরএসএ পাবলিক / প্রাইভেট কী জুড়ি উত্পন্ন করুন। নিশ্চিত হয়ে নিন যে আপনি কোনও পাসওয়ার্ড তৈরির পরে যুক্ত করেছেন। "Puttystyle.pub" হিসাবে সর্বজনীন কী সংরক্ষণ করুন এবং "কীটিস্টাইল" হিসাবে ব্যক্তিগত কী সংরক্ষণ করুন। পুট্টি প্রোগ্রাম এবং এসএসএইচ.কম প্রোগ্রামগুলিতে একটি সাধারণ পাবলিক-কি ফর্ম্যাট ভাগ করে তবে পুট্টি প্রোগ্রাম এবং ওপেনএসএসএইচ-এর বিভিন্ন পাবলিক-কী ফর্ম্যাট রয়েছে। আমরা এটিতে ফিরে আসব, পরে। আপনার পুটি প্রোগ্রামে উভয় পুটিস্টাইল কী লোড করতে সক্ষম হওয়া উচিত। তবে পুটি এবং এসএসএইচ ডটকমের ব্যক্তিগত কী ফর্ম্যাটগুলি এক নয় এবং তাই আপনাকে রূপান্তরিত ফাইল তৈরি করতে হবে। রূপান্তর মেনুতে যান এবং একটি এসএসএইচ.কম কী রফতানি করুন। এটি "sshstyle" হিসাবে সংরক্ষণ করুন। এখন রূপান্তর মেনুতে ফিরে যান এবং একটি ওপেনশ কীটি রফতানি করুন। এটি "ওপেনশ্যাশ" হিসাবে সংরক্ষণ করুন। এই নামগুলি নির্বিচারে এবং আপনি নিজের পছন্দটি চয়ন করতে পারেন। পরে আপনাকে ওপেনএসএসএইচ মেশিনে ইনস্টলেশনের জন্য নামগুলি পরিবর্তন করতে হবে। নিচে দেখ.

উপরের দিক থেকে প্রদত্ত আমি puttygenআমাদের পূর্বে উত্পন্ন উত্সাহী ব্যক্তিগত / সর্বজনীন ওপেনশ কী-জোড় ব্যবহার করে নিম্নলিখিত ব্যবহার করে কাজ করেছি :

# generate ssh.com private key from private openssh key
$ puttygen newkey -O private-sshcom -o newkey.puttygen-sshcom

# generate ssh.com public key from private openssh key
$ puttygen newkey -O public -o newkey.pub_puttygen-sshcom

# generate openssh public key from private openssh key (for confirmation)
$ puttygen newkey -O public-openssh -o newkey.pub_puttygen-openssh

মন্তব্যটি পৃথক, সুতরাং আপনি কেবল ফলাফলের ফাইলগুলি তুলনা করতে পারবেন না, তাই আপনি কীগুলির প্রথম কয়েকটি লাইনটি দেখুন তবে এটি বেশ ভাল সূচক যে উপরের কমান্ডগুলি সফল হয়েছিল।

পাবলিক ssh.com কীগুলির তুলনা:

$ tail -n +3 newkey.pub_e | head -1 | cut -c 1-60
AAAAB3NzaC1yc2EAAAADAQABAAABAQDFkZdpmbze9c6pT883rE1i64TJd4wb

$ tail -n +3 newkey.pub_puttygen-sshcom | head -1 | cut -c 1-60
AAAAB3NzaC1yc2EAAAADAQABAAABAQDFkZdpmbze9c6pT883rE1i64TJd4wb

পাবলিক ওপেনশ কীগুলির তুলনা:

$ cut -c 1-100 newkey.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFkZdpmbze9c6pT883rE1i64TJd4wbz9x/w6I2DmSZVI9TJa6M9jgGE952QsOY

$ cut -c 1-100 newkey.pub_puttygen-openssh 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFkZdpmbze9c6pT883rE1i64TJd4wbz9x/w6I2DmSZVI9TJa6M9jgGE952QsOY

3
এবং প্রাইভেট কী রূপান্তর সম্পর্কে কি ?
17 МАЛИКОВ

@ ДМИТРИЙМАЛИКОВ - কেন ব্যাপার হবে? আমি এটি চেষ্টা করেছি এবং মনে হয় এটি ব্যক্তিগত বা জনসাধারণ কীগুলির জন্য কাজ করে।
slm

1
নিশ্চিত হতে পারছি না এটা আমার জন্য ফেরৎ যে বৈধ ব্যক্তিগত কী: $> a="$(ssh-keygen -e -f ~/.ssh/id_rsa)m"; b="$(ssh-keygen -e -f ~/.ssh/id_rsa.pub)m"; md5sum <<< $a; md5sum <<< $b ce615aa3e39e274d0bd81064399cedf8 - ce615aa3e39e274d0bd81064399cedf8 -। মূল ফাইলগুলির হ্যাশগুলি আলাদা, ওবিভি। দেখে মনে হচ্ছে এটি ব্যক্তিগত বা সর্বজনীন ইনপুট কীটির জন্য সর্বজনীন কী ফেরত দেয়।
28 МАЛИКОВ

@ ДМИТРИЙМАЛИКОВ - উত্তরে আমার আপডেট দেখুন। আপনি সঠিক যে ssh-keygenজনসাধারণের কীগুলি ফিরিয়ে দিচ্ছে। আমি অতিরিক্ত গবেষণার ভিত্তিতে একটি পদ্ধতি তৈরি করেছি। এটি গ্রহণযোগ্য হলে LMK।
slm

1
puttygen বৈশিষ্ট্যগুলি জটিল হতে পারে: puttygen <OpenSSH_priv_key> -O public -o id_rsa_ssh2_puttygen{.pub}( -Oআউটপুট- টাইপ এবং -oআউটপুট- ফাইলের জন্য বোঝায় )। এটি একটি ওপেনএসএসএইচ 7.0 উত্পাদিত আরএসএ 2048 বিট প্রাইভেট কী থেকে এসএস 2 প্রাইভেট এবং পাবলিক কী উত্পন্ন করে। উইন ফোন .5.৫ ক্লায়েন্টে কাজ করছেন না (* টমমি পিয়ার্তিনিমেয়ীর এসএসএইচ ক্লায়েন্ট)। তবে যাইহোক একটি দুর্দান্ত উত্তরের জন্য @ ДМИТРИЙМАЛИКОВ এবং @ এসএলএমকে ধন্যবাদ। @ ওথিয়াস পুটটিজেন puttyআর্কে রয়েছে।
tuk0z

1

ssh-keygenপেম ফর্ম্যাটে কোনও প্রাইভেট কী রফতানি করবে না, তবে এটি বিদ্যমান ওপেনশ প্রাইভেট কীকে পিম ফর্ম্যাটে রূপান্তর করবে, মূলটিকে ওভাররাইট করে। আপনাকে যা করতে হবে তা হ'ল পাসওয়ার্ড সম্পাদনা করা।

আপনার ~/.ssh/id_rsaফাইলটি ওপেনএসএসএইচ ফর্ম্যাট থেকে এসএসএইচ 2 (পেম) ফর্ম্যাটে রূপান্তর করার কমান্ডটি হ'ল:

ssh-keygen -p -f ~/.ssh/id_rsa -m pem

তারপরে প্রম্পটে (পুরানো) এবং নতুন পাসফ্রেজ সরবরাহ করুন। এগুলি একই হতে পারে, বা উভয়ই ফাঁকা হতে পারে। অথবা আপনি তাদের -P(পুরানো পাসফ্রেজ) এবং -N(নতুন পাসফ্রেজ) বিকল্পগুলি ব্যবহার করে কমান্ড-লাইনে সরবরাহ করতে পারেন । উদাহরণস্বরূপ, যদি পাসফ্রেজ ফাঁকা থাকে এবং আপনি এটি সেভাবে রাখতে চান:

ssh-keygen -p -P '' -N ''-f ~/.ssh/id_rsa -m pem
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.