এসএসএইচ হঠাৎ করে অবৈধ ফর্ম্যাটটি ফিরছে


23

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

-rw------- 1 itsgreg users 1674 Jun 6 12:51 key_name

আমি চেষ্টা করেছি ssh -i key_name, ssh-keygen -f key_name, কিন্তু কিছুই কাজ, আমি সবসময় এই ত্রুটি বার্তা পাবেন:

Load key "key_name": invalid format

এই সমাধানের জন্য কোনো উপায় আছে কি?

উত্তর:


13

key_nameএজেন্ট যদি বলে invalid format, এর লিখিত সামগ্রীগুলি পরীক্ষা করে দেখুন , তাহলে কীটির সাথে কিছু ভুল আছে - যেমন .. আপনি কি নিশ্চিত যে এটিই সঠিক কী? এমনকি এটি আপনার প্রাইভেট কী না হলেও, কীটি কাজ করা থাকলে ssh এজেন্ট ফিরে আসবে না invalid format, আপনি কেবল সংযোগ করতে সক্ষম হবেন না। কোনও কারণে আপনি আপনার পাবলিক কীটি সেখানে রেখে দিতে পারেন। এটি পরীক্ষা করুন!


6
অবশ্যই পরীক্ষা করা হয়েছে। দিয়ে শুরু হয় ----BEGIN RSA PRIVATE KEY-----এবং শেষ হয় -----END RSA PRIVATE KEY-----। প্লাস এটি কাজ করতে ব্যবহৃত।
গ্রেগোর মেনিহ

2
অত্যন্ত অসম্ভব, তবে এখনও সম্ভব, ফাইলটি দূষিত। একটি নতুন তৈরি করুন এবং লাস্টপাস থেকে সামগ্রীগুলি আবার পপুলেট করুন।
13dimitar

2
বাহ, এটা আসলে সাহায্য করেছে! নতুন কীটি উত্পন্ন করার পরে আমি লক্ষ্য করেছি যে নতুন কীটিতে প্রতি লাইনে characters৪ টি অক্ষর রয়েছে এবং আমার পুরানো কীটি 76! টি ছিল I আমি প্রথম লাইন থেকে একটি ড্যাশও হারিয়েছিলাম।
গ্রেগর মেনিহ

2
"আমি প্রথম লাইনের একটি ড্যাশও অনুপস্থিত ছিলাম।" পূর্বোক্ত। এজন্য আপনাকে ধন্যবাদ টার্মিনাল নির্বাচন এবং অনুলিপি করার সময় আমি প্রায়শই প্রথম চরিত্রটি মিস করি!
স্টারফ্রি

15

আমি এই সমস্যাটি সমাধান করার জন্য যা করেছি তা হ'ল আমি পিপিকে ফাইলটি ব্যবহার করে রূপান্তর করতে ব্যবহার করি PuttyGen

প্রথমে লোড করুন urkey.PPK, তারপরে রূপান্তর মেনুতে ওপেনশ্যাশ ফাইল ফর্ম্যাটে এক্সপোর্ট ক্লিক করুন। এটি নিউকি ফাইল তৈরি করবে।

এখন, ssh -i "newkey" user@127.0.0.1

সম্পন্ন. আশা করি এটা সাহায্য করবে.


4

আমি ওপেনশাকে .ssh / কনফিগারেশন ফাইলে নির্দিষ্ট করে নির্দিষ্ট পরিচয় ফাইলটি ব্যবহার করতে বলছিলাম।

মূল কাজের কনফিগারেশন ছিল

IdentityFile = <path to public key file> 

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


আমার ক্ষেত্রে, আমার সাথে configফাইল সেটআপ ছিল path_to_public_keyএবং সবকিছু কাজ করছে। তবে যখন ম্যাক একটি হার্ড পুনরায় আরম্ভ করে এবং কয়েক দিন পরে আমি একটি করার চেষ্টা git pushকরেছি, আমি উপরে বর্ণিত ত্রুটি পেতে শুরু করেছি getting তবে আমি যখন এখন এটিগুলিতে পরিবর্তন করেছি তখন path_to_private_keyকাজ করছে ... হুমমম। নিশ্চিত না কেন ..
লুইক

3

আমার একই সমস্যা ছিল এবং এটি প্রমাণিত হয়েছে যে কোনও কারণে ফাইলে আমার উইন্ডোজ-স্টাইল (সিআরএলএফ) লাইন বিভাজক ছিল।

এছাড়াও, ফাইলটি অবশ্যই একটি একক এলএফ দিয়ে শেষ করা উচিত।

সেই তৈরি জিনিসগুলিকে আবার জঘন্য করে ফিক্সিং করা হচ্ছে।


এটি চূড়ান্তভাবে চূড়ান্ত যে চূড়ান্ত এলএফ এতটা প্রয়োজনীয়, তবে এটি আসলেই আংশিক সমস্যা ছিল, অন্য অংশটি হওয়ায় আমি উইন্ডোজে ফাইলটি তৈরি করেছি এবং এটির ফলে এটি সিআরএলএফ লাইন বিচ্ছেদ দেয়। অন্যের রেফারেন্সের জন্য, dos2unixসিআরএলএফ (উইন্ডোজ-স্টাইল) থেকে এলএফ (লিনাক্স-স্টাইল) লাইন ব্রেকগুলিতে রূপান্তর করার আদেশটি কি।
হাশিম

1

আপনার .ppk কীটি OpenSSH কীতে রূপান্তর করা উচিত

আপনি এটি কীভাবে করেন তা এখানে :

  1. PuttyGen ডাউনলোড করুন এবং আপনার কীপ্যায়ার তৈরি করুন (যদি আপনার কীপাইয়ার প্রস্তুত না থাকে)। আপনার ফোল্ডারে প্রাইভেট কী সংরক্ষণ করুন (.ppk)
  2. আপনার যদি ইতিমধ্যে ব্যক্তিগত কী থাকে তবে "লোড" বোতাম টিপে প্রাইভেট কী ফাইলটি (.ppk) লোড করুন। অন্যথায়, এই পদক্ষেপটি এড়িয়ে যান
  3. মেনু "রূপান্তর" এর অধীনে, ওপেনএসএসএফ রফতানি রফতানি নির্বাচন করুন এবং এটি আপনার ফোল্ডারে সংরক্ষণ করুন
  4. এখন আপনি পাসওয়ার্ড টাইপ না করে আপনার সার্ভারে লগইন করতে কীটি ব্যবহার করার জন্য প্রস্তুত (আমি ধরে নিলাম আপনি ইতিমধ্যে পাবলিক কীটি /root/.ssh/authorised_keys, chmod 600 /root/.ssh/authorised_keys, এবং পুনরায় আরম্ভ হওয়া এসএসএইচ দৈত্যের অধীনে রেখেছেন)

1

আমি যখন আজ আমার সিআই পাইপলাইনের জন্য কিছু গিট ট্যাগিংয়ের ব্যবহার লিখছিলাম তখন আমি কেবল এটির মধ্যে দিয়েছিলাম।

এখানে আমার দুটি কীগুলির মধ্যে পার্থক্য ছিল:

$ diff ~/.ssh/gitlab ~/.ssh/git_ssh_key
27c27
< -----END OPENSSH PRIVATE KEY-----
---
> -----END OPENSSH PRIVATE KEY-----
\ No newline at end of file

আমি আমার কোডটি এভাবে পরিবর্তন করেছি:

     with open(ssh_key_file, 'w') as skf:
-        skf.write(ssh_key)
+        skf.write(ssh_key + '\n')

এবং এখন আমার ssh কী কাজ করে।

টিএল; ডিআর - আমার ধারণা আপনার ব্যক্তিগত কী শেষে আপনার একটি নতুন লাইন থাকবে।


1

আমার ক্ষেত্রে, এটি প্রমাণিত হয়েছে যে আমার কাছে শুরুর / শেষ "শিরোনাম" এবং কী ডেটার মধ্যে নতুন লাইন রয়েছে:

-----BEGIN RSA PRIVATE KEY-----

- Key data here -

-----END RSA PRIVATE KEY-----

অতিরিক্ত নতুন লাইনগুলি সরানো, তাই এটি হয়ে গেল

-----BEGIN RSA PRIVATE KEY-----
- Key data here -
-----END RSA PRIVATE KEY-----

আমার সমস্যা সমাধান


0

সর্বজনীন কী পরিবর্তে আপনার ব্যক্তিগত কী ব্যবহার করুন।


আমার উত্তর হিসাবে একই সমাধান - যেখানে একটি ব্যাখ্যাও যুক্ত করা হয়েছে
vphakhak

0

আমার এই সমস্যাটি ছিল কারণ আমার ~ / .ssh এ একটি কী ছিল যা আসলে একটি অবৈধ ফর্ম্যাট এবং আমার কাছে অনেকগুলি কী ছিল যার অর্থ এসএসএইচ তাদের সমস্ত চেষ্টা করছে, যদিও আমি কমান্ডে আমার পরিচয় ফাইলটি নির্দিষ্ট করেছি। এটি কেবল ব্যর্থ হওয়ার কারণ এটি আমার মনে হয় কেবল 5 টি কী চেষ্টা করতে পারে এবং তারপরে আমাকে সেই ত্রুটিটি দিয়ে রেখেছিল, যা বৈধ ছিল, কেবল ভুল পরিচয় ফাইলের জন্য। সমাধানটি কেবল IdentitiesOnly yesআমার ~ / .ssh / কনফিগারেশনে ব্যবহার করা ছিল ।


0

আমি এই ত্রুটিটি পেয়েছি কারণ কী ফাইলের শুরুতে একটি ফাঁকা রেখা ছিল। আপনি যদি catএটি ব্যবহার করে যাচ্ছেন তবে সহজেই মিস ।


0

এটি যদি আপনার ব্যক্তিগত কীতে পাসফ্রেজ থাকে তবে এটি ত্রুটি শ্যাশ (অন্তত কিছু সংস্করণ) নির্গত করে এবং সংযোগ দেওয়ার চেষ্টা করার সময় পাসফ্রেজটি ভুল লিখুন।

(বিশেষত, আমার সাথে এটি ঘটেছিল: ওপেনএসএসএইচ_7.6 পি 1, লিব্রেএসএসএল 2.6.2, যা ম্যাক ওএস এক্স 10.13.6 এর জন্য অন্তর্নির্মিত এসএসএইচ)

সুতরাং ডাবল-পরীক্ষা করে দেখুন যে আপনি সঠিক পাসফ্রেজটি ব্যবহার করছেন এবং সিএপিএস লক বন্ধ রয়েছে।


-2

আপনার প্রাইভেট কীটি পুনরায় নামকরণ এবং সমস্যাটি ফাইল এক্সটেনশন সরানোর বিষয়ে নিশ্চিত হন।

পদক্ষেপ আমি গ্রহণ

আপনার সর্বজনীন কী তৈরি করুন:

নিশ্চিত করুন যে আপনি একই ডিরেক্টরিতে রয়েছেন আপনার কাছে কী আছে key

পাবলিক কী কীভাবে তৈরি করবেন:

ssh-keygen -y -f Private-Key.pem > Public-key.pub

নিশ্চিত করুন যে পাবলিক কীটিতে একটি .pub ফাইল এক্সটেনশন রয়েছে

এর পরে সুরক্ষার কারণে যথাযথ অনুমতি প্রদান করুন:

chmod 600 Private-Key.pem
chmod 400 Public-key.pub

তারপরে সবচেয়ে গুরুত্বপূর্ণ অংশ এবং কারণটিতে আপনি "অবৈধ ফর্ম্যাট" ত্রুটিটি পেয়েছেন

আপনার প্রাইভেট কীটি নামকরণ এবং ফাইল এক্সটেনশানটি সরিয়ে নেওয়ার বিষয়টি নিশ্চিত করুন:

আপনার ব্যক্তিগত কী থেকে .pem সরান Remove

mv Private-Key.pem Private-Key

অথবা যদি উইন্ডোজ কম্পিউটারে প্রাইভেট কীটির নাম পরিবর্তন করে, একই নামটি সরিয়ে ফেলুন .pem

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.