উত্তর:
আমি এমন একটি উপায় পেয়েছি যা দেখে মনে হয় আমার পক্ষে আরও ভাল কাজ করা হয়েছে:
ssh-keygen -y -f <private key file>
সেই কমান্ড প্রদত্ত ব্যক্তিগত কীটির জন্য সর্বজনীন কীকে আউটপুট দেবে, সুতরাং কেবলমাত্র প্রতিটি * .pub ফাইলের সাথে আউটপুট তুলনা করুন।
id_rsa.pub.blahhost
ফাইল রয়েছে এবং আমি জানতাম না যে কোনটি একক id_rsa
ব্যক্তিগত কী'র সাথে মিলেছে এবং আমি পাসওয়ার্ডহীন স্কিপ সেটআপ করছি যাতে আমি পুরানো ওয়েবসাইটগুলি সরিয়ে নিতে পারি। নতুন কী জুটি তৈরি করা কোনও বিকল্প নয়; আমি আমার কীগুলি ভালভাবে সেট আপ করেছি এবং তাতে কোনও গণ্ডগোল হবে না।
আমি সবসময় এই কমান্ডগুলি ব্যবহার করে মডিউলাসের একটি MD5 হ্যাশ তুলনা করি:
Certificate: openssl x509 -noout -modulus -in server.crt | openssl md5
Private Key: openssl rsa -noout -modulus -in server.key | openssl md5
CSR: openssl req -noout -modulus -in server.csr | openssl md5
যদি হ্যাশগুলি মিলে যায়, তবে সেই দুটি ফাইল একসাথে চলে।
ডিএসএ কীগুলির জন্য, ব্যবহার করুন
openssl dsa -pubin -in dsa.pub -modulus -noout
পাবলিক কী মুদ্রণ করতে, তারপর
openssl dsa -in dsa.key -modulus -noout
একটি ব্যক্তিগত কী সম্পর্কিত পাবলিক কীগুলি প্রদর্শন করতে, তারপরে তাদের তুলনা করুন।
ধরুন আপনার x.509 শংসাপত্রের মধ্যে সার্বজনীন কী রয়েছে এবং ধরে নিচ্ছেন যে সেগুলি আরএসএ কী, তবে প্রতিটি পাবলিক কী এর জন্য, করুন
openssl x509 -in certfile -modulus -noout
প্রতিটি ব্যক্তিগত কী জন্য, করুন
openssl rsa -in keyfile -modulus -noout
তারপরে মডুলাস দ্বারা কীগুলি মেলান।
ভিন্নতা দিয়ে চেকটিকে আরও সহজ করা যায়:
diff <(ssh-keygen -y -f <private_key_file>) <public key file>
একমাত্র অদ্ভুত বিষয়টি হ'ল ফাইলগুলি একই রকম হলে ডিফ কিছুই বলে না, তাই সরকারী এবং বেসরকারী না মিললে কেবল আপনাকে জানানো হবে ।
diff -s
diff -qs
একটি সরল "অভিন্ন / অভিন্ন নয় উত্তর।" (2) আপনার
সর্বজনীন কীগুলি মুছুন এবং ব্যক্তিগত কীগুলি থেকে নতুন তৈরি করুন। এগুলিকে আলাদা ডিরেক্টরিতে রাখুন বা এগুলি সোজা রাখতে নামকরণের কনভেনশন ব্যবহার করুন।
Key USER / .ssh ডিরেক্টরিতে কোনও প্রাইভেট কী এবং সর্বজনীন কী কোনও মিলিত সেট (অভিন্ন) কিনা কোনও মিলিত সেট (অভিন্ন) কিনা তা পরীক্ষা করতে নিম্নলিখিত কমান্ডটি প্রবেশ করান। কাট কমান্ড পাবলিক কীতে লাইনের শেষে থাকা মন্তব্যটিকে তুলনা করা থেকে বাধা দেয়, কেবল কীটির সাথে তুলনা করার অনুমতি দেয়।
ssh-keygen -y -f ~/.ssh/id_rsa | diff -s - <(cut -d ' ' -f 1,2 ~/.ssh/id_rsa.pub)
আউটপুট এই লাইনের একটির মতো দেখাবে।
Files - and /dev/fd/63 are identical
Files - and /dev/fd/63 differ
আমি একটি শেল স্ক্রিপ্ট লিখেছিলাম যা ব্যবহারকারীরা তাদের ~ / .ssh / ফাইলগুলির ফাইল মেলানো কী কী সেটটি পরীক্ষা করতে ব্যবহার করে। এটি ব্যবহারকারীর ইভেন্টগুলি ssh স্থাপনের সাথে আমার চ্যালেঞ্জগুলি সমাধান করে। এটি আপনাকে সাহায্য করতে পারে। https://github.com/BradleyA/docker-security-infrastructure/tree/master/ssh
দ্রষ্টব্য: আমার পূর্ববর্তী উত্তর (মার্চ 2018 এ) আর খোলাখুলির সর্বশেষ প্রকাশের সাথে কাজ করে না। পূর্ববর্তী উত্তর: ডিফার-কিউএস <(এসএসএস-কীজেন -yf ~ / .ssh / id_rsa) <(কাট-ডি '' -ফ 1,2 ~ / .ssh / id_rsa.pub)
আপনি যদি উইন্ডোতে থাকেন এবং জিটিআইআই ব্যবহার করতে চান, পুট্টিজন সহ আপনি এটিতে আপনার ব্যক্তিগত কীটি আমদানি করতে পারেন:
একবার আমদানি হয়ে গেলে আপনি এর সর্বজনীন কীটি সংরক্ষণ করতে পারেন এবং এটি আপনার সাথে তুলনা করতে পারেন।
সর্বজনীন কী সহ কোনও কিছু এনক্রিপ্ট করুন এবং কোন ব্যক্তিগত কী এটি ডিক্রিপ্ট করে দেখুন।
জেফ আতউড ছাড়া অন্য কারও দ্বারা এই কোড প্রকল্পের নিবন্ধটি .NET ক্রিপ্টো ক্লাসের চারপাশে একটি সরলিকৃত মোড়ক প্রয়োগ করে। এই কীগুলি আরএসএ ব্যবহারের জন্য তৈরি করা হয়েছিল ধরে নিলেন, আপনার পাবলিক কী সহ এনক্রিপ্ট করার জন্য অসমমিতিক শ্রেণি এবং ডিক্রিপ্টে আপনার ব্যক্তিগত কী ব্যবহার করুন।
যদি এটি কিছুই না ফেরায় তবে তারা মিলছে:
cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
ssh -i $HOME/.ssh/id_rsa localhost
কেবল পুটটিজেন ব্যবহার করুন এবং এতে আপনার ব্যক্তিগত কী চাপুন। বিভিন্ন বিকল্প প্রস্তাব করে, যেমন কোরসপন্ডিং পাবলিক কী রফতানি করা।