পিইএম ssh কী এর ফিঙ্গারপ্রিন্ট


30

আমার একটি পিইএম ফাইল রয়েছে যা আমি একটি চলমান এসএস-এজেন্টে যুক্ত করি:

$ file query.pem
query.pem: PEM RSA private key

$ ssh-add ./query.pem
Identity added: ./query.pem (./query.pem)

$ ssh-add -l | grep query
2048 ef:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX ./query.pem (RSA)

কীভাবে কীটির ফিঙ্গারপ্রিন্ট (যা আমি এসএসএইচ-এজেন্টে দেখি) সরাসরি ফাইল থেকে পেতে পারি? আমি জানি ssh-keygen -l -f some_key"সাধারণ" এসএসএস কীগুলির জন্য কাজ করে তবে পিইএম ফাইলগুলির জন্য নয়।

যদি আমি .pem ফাইলে ssh-keygen চেষ্টা করি তবে আমি পাই:

$ ssh-keygen -l -f ./query.pem                                             
key_read: uudecode PRIVATE KEY----- failed
key_read: uudecode PRIVATE KEY----- failed
./query.pem is not a public key file.

এই কীটি দিয়ে শুরু হয়:

-----BEGIN RSA PRIVATE KEY-----
MIIEp.... etc.

"নিয়মিত" প্রাইভেট কী-এর বিপরীতে যা দেখে মনে হচ্ছে:

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,E15F2.... etc.

আপনি কেন ভাবেন যে এটি পিইএম ফাইলগুলির জন্য কাজ করে না? আপনি চেষ্টা করে কোন ত্রুটি পাবেন? .ssh/id_rsaসমস্ত ডিফল্ট ব্যবহার করে ওপেনএসএইচ দ্বারা উত্পন্ন একটি ফাইল একটি পিইএম ফাইল। ব্যক্তিগত কীগুলি ডিফল্টরূপে পিইএম এনকোড থাকে। বাস্তবে আপনি ওপেনএসএসএলে সরাসরি ওপেনএসএইচ দিয়ে তৈরি করা আরএসএ কীগুলি ব্যবহার করতে পারেন।
জোড়াদেচি

.pem- এ ssh-keygen থেকে আউটপুট সহ আপডেট বর্ণনা
অজানা

(দেরীতে তবে উপস্থাপিত) @ জোরেডাচে: .2.২ এর আগে (২০১ Q-এ, এই কিউয়ের পরে) ssh-keygen -lএকটি প্রাইভেটকি ফাইল পড়তে পারে না, যদিও অন্যান্য ssh-keygen(এবং ssh*) অপারেশনগুলি করে। কিন্তু যখন ssh-keygen উত্পন্ন একটি কী এটি উভয় privatekey ফাইল যেমন লিখেছেন id_rsa এবং সঙ্গে একটি সংশ্লিষ্ট publickey ফাইল .pubযোগ উদাঃ id_rsa.pub। পুরানো আপনার নির্দিষ্ট করা ফাইলের নাম যুক্ত করতে এবং সেই পাবলিককি ফাইলটি পড়ার চেষ্টা ssh-keygen -l করবে.pub
dave_thompson_085

উত্তর:


34

আপনি যদি আপনার হারিয়ে যাওয়া সর্বজনীন কী ফাইলটির ফিঙ্গারপ্রিন্ট পুনরুদ্ধার করতে চান তবে আপনি এটি ব্যক্তিগত কী ফাইল থেকে পুনরুদ্ধার করতে পারেন :

$ ssh-keygen -yf path/to/private_key_file > path/to/store/public_key_file

তারপরে আপনি পাবলিক ফিঙ্গারপ্রিন্ট নির্ধারণ করতে সক্ষম হবেন:

$ ssh-keygen -lf path/to/store/public_key_file
2048 SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX user@host (RSA)

কিছু নতুন সিস্টেমে এটি কীটির SHA256 ফিঙ্গারপ্রিন্ট মুদ্রণ করে। আপনি বিকল্পটি ব্যবহার করে কী (কোলন ফর্ম) এর MD5 ফিঙ্গারপ্রিন্ট মুদ্রণ করতে পারেন -E:

$ ssh-keygen -E md5 -lf path/to/store/public_key_file
2048 MD5:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx user@host (RSA)

অথবা একটি কমান্ড লাইন হিসাবে :

$ ssh-keygen -yf /etc/ssh/ssh_host_ecdsa_key | ssh-keygen -E md5 -lf -
2048 MD5:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx user@host (RSA)

@ মাইকডের উত্তরটি আসলে ওপি কী সন্ধান করছে (এবং আমি কী সন্ধান করছিলাম) এর "সঠিক" উত্তর। ডাব্লুএসএস তার দেখানো ফর্ম্যাটে ফিঙ্গারপ্রিন্ট সরবরাহ করে, অঙ্কগুলির জোড়াটি কলোন দ্বারা পৃথক করে। তার সমাধান (সরবরাহিত এডাব্লুএস পৃষ্ঠা থেকে নেওয়া) এছাড়াও একই ফ্যাশনে আঙুলের ছাপ তৈরি করে, যাতে আপনি সঠিকভাবে যাচাই করতে পারেন।
মাইক উইলিয়ামসন 1

50

এডাব্লুএস এর " আপনার কী-জুটির ফিঙ্গারপ্রিন্ট যাচাই করা হচ্ছে" আপনার কী কীভাবে তৈরি হয়েছিল তার উপর নির্ভর করে দুটি ওয়ান-লাইন সরবরাহ করে যা সমস্যার সমাধান করে।

আপনি যদি আপনার মূল জুটিটি এডাব্লুএস ব্যবহার করে তৈরি করেন:

$ openssl pkcs8 -in query.pem -inform PEM -outform DER -topk8 -nocrypt | openssl sha1 -c
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx

অথবা, যদি আপনি কোনও তৃতীয় পক্ষের সরঞ্জাম দিয়ে আপনার মূল জুটি তৈরি করেন:

$ openssl rsa -in query.pem -pubout -outform DER | openssl md5 -c
writing RSA key
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx

(উপরের আউটপুটে ফিঙ্গারপ্রিন্টগুলি redacted)


6

এখানে একটি লাইনার রয়েছে যা স্থানীয়ভাবে কোনও পাবলিক কী ফাইল তৈরির প্রয়োজন ছাড়াই আপনার যা করা উচিত তা করা উচিত।

$ ssh-keygen -lf /dev/stdin <<< $( ssh-keygen -f ~/.ssh/keyname.pem -y )
2048 14:df:c7:b7:f1:26:7f:87:d5:e7:10:6c:ac:af:a2:03 /dev/stdin (RSA)

এটি <<<স্ট্যান্ডিনকে /dev/stdinপাইপের পরিবর্তে একটি নিয়মিত ফাইল ( ) হিসাবে উপস্থিত থাকতে পারে ssh-keygenকেবলমাত্র একটি ফাইলের মধ্যেই কাজ করবে here

প্রকাশের হিসাবে 7.2 ওপেনশssh-keygen স্ট্যান্ডার্ড ইনপুট থেকে আঙুলের ছাপ সমর্থন করে:

  • ssh-keygen (1): স্ট্যান্ডার্ড ইনপুট থেকে আঙুলের ছাপ দেওয়ার অনুমতি দিন, যেমন "ssh-keygen -lf -"

নোট করুন যে এই কমান্ডটি এমন ব্যক্তিগত কীগুলির সাথে বিরতি ফেলবে যা একটি পাসফ্রেজ ব্যবহার করে এবং এজেন্ট ব্যবহার করে না। এটি অ্যাডাব্লুএস বা ওপেনস্ট্যাক দ্বারা উত্পাদিত পেম ফাইলগুলির সাথে কাজ করা উচিত যা পাসফ্রেসগুলি ব্যবহার করে না।

আরও তথ্যের জন্য https://stackoverflow.com/questions/2635360/ssh-keygen-accepting-stdin দেখুন ।


রিলিজ নোটগুলি বলে নি তবে উত্স অনুসারে .2.২ হিসাবে -lএকটি প্রাইভেটকি ফাইল পড়তে সমর্থন করে (তবে স্টিডিন থেকে নয় )।
dave_thompson_085

2

আপনি ব্যক্তিগত কী ফাইল থেকে পাবলিক কী ফাইল থেকে ফিঙ্গারপ্রিন্ট পাবেন না।

আসলে, এসএস-কিজেন আপনাকে ইতিমধ্যে এটি বলেছে:

./query.pem একটি সর্বজনীন কী ফাইল নয়।

কীটির জনসাধারণের অর্ধেকের বিরুদ্ধে এটি চালান এবং এটি কাজ করা উচিত।

আরও সাধারণভাবে বলতে

এটি সম্পর্কে চিন্তা করুন: আঙুলের ছাপ বিদ্যমান থাকার কারণ আপনি পাবলিক কীটি সনাক্ত করতে পারেন। প্রকৃতপক্ষে, প্রাইভেট কীটির একটি হ্যাশ পাওয়া সার্ভারের অকেজো হওয়া ছাড়াও একটি সম্ভাব্য সুরক্ষা সমস্যা (যা এমনকি প্রাইভেট কীটিও প্রশ্নে নেই)।

আপনার কাছে সর্বজনীন কী হয়ে গেলে, প্রক্রিয়াটি যাচাই করা হয় যে ক্লায়েন্টটি সংশ্লিষ্ট বেসরকারী অর্ধেকের হাতে রয়েছে। যেহেতু আপনি ইতিমধ্যে জানেন কী কীগুলি যাচাই করার চেষ্টা করছে, তাই আপনার ফিঙ্গারপ্রিন্টের দরকার নেই।


সমস্যাটি হ'ল আমার কাছে এই ব্যক্তিগতটির জন্য পাবলিক কী নেই :( এবং আরেকটি বিষয়, ssh-keygenএকটি আরএসএ প্রাইভেট কী ফাইলটিতে কাজ করে যার শুরুতে অতিরিক্ত তথ্য রয়েছে (আমার প্রাথমিক পোস্টটি দেখুন), তবে এইটিতে নয় not ।
অজানা

তারপরে এটি করার মতো কিছুই নেই। বিপরীত কাজটি করার চেয়ে আপনি ব্যক্তিগত অংশ থেকে চাবিটির অর্ধেক পাবলিক পেতে পারেন না।
স্টিফেন

3
এটা ভুল। @ অ্যামনিং যেমন উপরে উল্লিখিত হয়েছে, এটি ssh-keygen -yfকরে।
স্টিভ বেনেট

4
@ স্টেফেন খাঁটি আরএসএ পর্যায়ে সঠিক হওয়ার পরে, অনুশীলনে কী কীগুলি পিকেসিএসে সংরক্ষণ করা হয় তা ব্যক্তিগত কীগুলির জন্য ফর্ম্যাটটিতে আসলে উভয় কী অন্তর্ভুক্ত রয়েছে। প্রাইভেট বনাম পাবলিকের
হাকান লিন্ডকভিস্ট

"আপনি ব্যক্তিগত অংশ থেকে চাবিটির অর্ধেক জন পাচ্ছেন না ..." - ওহ হ্যাঁ, আপনি সম্ভবত পারেন can প্রাইভেট কী থেকে মডুলাসটি নিয়ে যান এবং পাবলিক এক্সপোনেন্ট হিসাবে 65537 ব্যবহার করুন এবং আপনি পাবলিক কীটি খুঁজে পেয়েছেন এমন সম্ভাবনা রয়েছে।
জিম বন্যা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.