উত্তর:
আমি কোনও পাবলিক / প্রাইভেট ডিএসএ কী-কেয়ার কীভাবে পরীক্ষা করবssh-keygen -y -e -f <private key>
তার গ্রহণযোগ্য উত্তরের পরিবর্তে উপায়টি পছন্দ করব? স্ট্যাক ওভারফ্লো
ssh-keygen -y -e -f <private key>
একটি প্রাইভেট কী নিয়ে যায় এবং সংশ্লিষ্ট পাবলিক কীটি প্রিন্ট করে যা আপনার উপলব্ধ পাবলিক কীগুলির সাথে সরাসরি তুলনা করা যেতে পারে। (ইঙ্গিত: মন্তব্যগুলি বা কী-বিকল্পগুলি থেকে সাবধান থাকুন))
(এটি কীভাবে করছে? আমি কেবল আশা করতে পারি যে সরকারী কীটি সরাসরি বা অপ্রত্যক্ষভাবে ব্যক্তিগত কীতে এনকোড করা আছে ...)
আমার এটি নিজের প্রয়োজন এবং নিম্নলিখিত বাশ ওয়ান-লাইনার ব্যবহার করেছি। কীগুলি এক সাথে থাকলে এটির কিছুই আউটপুট করা উচিত নয়। -q
স্ক্রিপ্টগুলিতে ভিন্নতার জন্য কিছুটা প্রয়োগ করুন এবং ডিফ কেবল রিটার্ন কোডটি যথাযথভাবে সেট করে।
PRIVKEY=id_rsa
TESTKEY=id_rsa.pub
diff <( ssh-keygen -y -e -f "$PRIVKEY" ) <( ssh-keygen -y -e -f "$TESTKEY" )
ssh-keygen -y -e -f id_rsa
না id_rsa.pub বিদ্যমান থাকবে ততক্ষণ id_rsa একেবারেই চেক করবে না তবে id_rsa.pub থেকে মানটি ফিরিয়ে দেবে। সুতরাং উদাহরণস্বরূপ আপনি যদি echo 5 > id_rsa
ব্যক্তিগত কী মুছে ফেলেন, তবে ডিফ করুন, ডিফটি পাস হবে! এছাড়াও, ssh-keygen -yef foo
যেখানে foo একটি বৈধ কী নয় (এবং এর সাথে কোনও foo.pub নেই) চালানো ব্যবহারকারীর ইনপুটটির অপেক্ষায় অবরুদ্ধ হবে, সুতরাং এটি কোনও স্ক্রিপ্টে ব্যবহারের ক্ষেত্রে সতর্কতা অবলম্বন করুন।
আপনি যে সার্বজনীন কী ফাইলটি পরীক্ষা করছেন তা নির্ভর করে, গৃহীত উত্তরটি মিথ্যা ইতিবাচক ফলাফল দিতে পারে। @ ড্রুবেন মন্তব্যটিতে বর্ণিত আচরণের কারণেই এটি। বিশেষত, যখন -e বিকল্পটি বেসরকারী কী ফাইলের সাথে -f বিকল্প প্যারামিটার হিসাবে ব্যবহার করা হয়, তখন এটি সরকারী পাবলিক কী ফাইলের মধ্যে যা কিছু রয়েছে তা কেবল পার্ট করে (তবে পুনরায় ফর্ম্যাট করে)।
অন্য কথায়,
ssh-keygen -y -f id_rsa
(আপাতদৃষ্টিতে) সর্বজনীন কী মান উত্পন্ন করে এবং
ssh-keygen -y -e -f id_rsa
বিদ্যমান id_rsa.pub- এ যা কিছু থাকুক না কেন কেবল এবং আউটপুটগুলি (এবং পুনরায় ফর্ম্যাট) করা যায় ।
আমার ক্ষেত্রে, আমাকে যাচাই করতে হবে যে এই জুটিটি কলুষিত হয়নি। সুতরাং, আমি নিম্নলিখিতটি তুলনা করার সিদ্ধান্ত নিয়েছি:
ssh-keygen -y -f id_rsa | cut -d' ' -f 2
সঙ্গে
cut -d' ' -f 2 id_rsa.pub
অতএব:
diff <(cut -d' ' -f 2 id_rsa.pub) <(ssh-keygen -y -f id_rsa | cut -d' ' -f 2)
সম্ভবত এটি হিসাবে নমনীয় নয়, তবে এটি আমার প্রয়োজনের জন্য ভাল। হতে পারে এটি অন্য কাউকে সাহায্য করে।
তারা আপনার স্থানীয় সিস্টেমে হন, তাহলে বিদ্ধ id_rsa.pub
আপনার $HOME/.ssh/authorized_keys
এবং ssh
করতে localhost
ব্যবহার id_rsa
কী। যদি এটি কাজ করে তবে তারা মিলছে।
cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
ssh -i $HOME/.ssh/id_rsa localhost
ssh -v
অনেক সাহায্য করে।