কিভাবে একটি ssh কী সরান?


154

আমার কাছে বর্তমানে একটি সার্ভারে একটি পুরাতন এসএসএইচ কী আপলোড হয়েছে। সমস্যাটি হ'ল আমি আমার ~/.sshডিরেক্টরি (মূল id_rsaএবং id_rsa.pubফাইলগুলি সহ) হারিয়েছি ।

ফলস্বরূপ, আমি পুরানো এসএসএইচ কীটি সরাসরি সার্ভারে সরাতে এবং একটি নতুন আপলোড করতে চাই।

আমি সফলতা ছাড়াই নিম্নলিখিত আদেশটি চেষ্টা করেছি:

$> ssh-add -D

এখানে চিত্র বর্ণনা লিখুন

কোনও এসএসএইচ কী সম্পূর্ণরূপে সরানোর কোনও উপায় আছে?


কি দিয়ে ssh-add -d?
ব্যবহারকারী 2196728

5
জঘন্য, এটি ssh-add -D, বড় হাতের
আলেকজান্ডার মিলস

আপনার সকেটগুলি পরীক্ষা করুন যা আপনার ssh-এজেন্ট (1) দ্বারা ব্যবহৃত হচ্ছে।
ডুইট স্পেন্সার

উত্তর:


129

মনে রাখবেন কীগুলি ssh-add -d/-D না সরানোর জন্য কমপক্ষে দুটি বাগ রিপোর্ট রয়েছে :

সঠিক সমস্যাটি হ'ল:

ssh-add -d/-Dশুধুমাত্র মুছে ফেলে নিজে যোগ জিনোম-কি-রিং থেকে কি।
স্বয়ংক্রিয়ভাবে যুক্ত কীগুলি মুছার কোনও উপায় নেই।
এটি আসল বাগ এবং এটি এখনও অবশ্যই উপস্থিত রয়েছে।

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

স্বয়ংক্রিয়ভাবে লোড হওয়া কীগুলিতে ssh-add -dপ্রয়োগ করার অনুমতি দেওয়া (এবং স্বয়ংক্রিয়ভাবে লোড হওয়া কীগুলির ssh-add -t Xআজীবন পরিবর্তন করতে), বেশিরভাগ ব্যবহারকারীদের আচরণটি পুনরুদ্ধার করবে restore


আরও স্পষ্টভাবে, সমস্যাটি সম্পর্কে:

অপরাধী হ'ল gpg-keyring-daemon:

  • এটি ssh-এজেন্টের সাধারণ ক্রিয়াকে বিভ্রান্ত করে, বেশিরভাগ মাত্র যাতে এটি একটি সুন্দর বাক্স পপআপ করতে পারে যাতে আপনি একটি এনক্রিপ্ট করা এসএস কী-এর জন্য পাসফ্রেজ টাইপ করতে পারেন।
  • এবং এটি আপনার .sshডিরেক্টরিতে থেমে যায় এবং স্বয়ংক্রিয়ভাবে এটি আপনার এজেন্টের সাথে পাওয়া কোনও কী যুক্ত করে।
  • এবং এটি আপনাকে কীগুলি মুছতে দেয় না।

আমরা কীভাবে এটিকে ঘৃণা করব? আসুন উপায়গুলি গণনা করি না - জীবনটি খুব ছোট।

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

এই বাগটি এখনও উবুন্টুতে 14.04.4 তে নিশ্চিত হয়েছে, যেমনটি দু'দিন আগে (আগস্ট 21, 2014)


একটি সম্ভাব্য কাজ:

  • কি ssh-add -Dআপনার সব মুছে ফেলতে ম্যানুয়ালি যোগ কি। এটি স্বয়ংক্রিয়ভাবে যুক্ত কীগুলিও লক করে রাখে, তবে বেশি ব্যবহার হয় না যেহেতু gnome-keyringআপনি যখনই চেষ্টা করার চেষ্টা করবেন যাইহোক এগুলি আনলক করতে বলবে git push
  • আপনার ~/.sshফোল্ডারে নেভিগেট করুন এবং ব্যাকআপ নামক একটি পৃথক ফোল্ডারে আপনি চিহ্নিত করতে চান এমনটি বাদে আপনার সমস্ত কী ফাইলগুলি সরিয়ে দিন। প্রয়োজনে আপনি সমুদ্রের ঘোড়াও খুলতে পারেন এবং সেখান থেকে কীগুলি মুছতে পারেন।
  • এখন আপনার git pushকোনও সমস্যা ছাড়াই সক্ষম হওয়া উচিত ।

আরেকটি কাজ

আপনি যা করতে চান তা হ'ল gpg-keyring-daemonসম্পূর্ণ বন্ধ করা ।
যান System --> Preferences --> Startup Applicationsএবং " SSH Key Agent (Gnome Keyring SSH Agent)" বাক্সটি আনইলেক্ট করুন - এটি সন্ধানের জন্য আপনাকে নিচে স্ক্রোল করতে হবে।

আপনি এখনও একটি পাবেন ssh-agent, কেবল এখন এটি বুদ্ধিমান আচরণ করবে: কোনও কী স্বয়ংক্রিয়ভাবে চালিত হয় না, সেগুলি যুক্ত করতে আপনি এসএসএড-অ্যাড চালান, এবং আপনি কীগুলি মুছতে চান, আপনি এটি করতে পারেন। এটা কল্পনা।

এই মন্তব্যগুলি আসলে পরামর্শ দেয়:

সমাধানটি gnome-keyring-managerসর্বদা শুরু করা থেকে বিরত রাখা , যা শেষ পর্যন্ত প্রোগ্রামটির ফাইলের সম্পাদন করার অনুমতিটি সরিয়ে অদ্ভুতভাবে কঠিন হয়েছিল।


রায়ান লু মন্তব্যগুলিতে আরও একটি আকর্ষণীয় কর্নার কেস যুক্ত করেছেন :

যদি এটি কাউকে সহায়তা করে: আমি এমনকি ফাইলগুলি id_rsaএবং id_rsa.pubফাইলগুলি সম্পূর্ণ মুছতে চেষ্টা করেছিলাম এবং কীটি এখনও প্রদর্শিত হচ্ছে।

দেখা যাচ্ছে যে gpg-agentকোনও ~/.gnupg/sshcontrolফাইলে তাদের ক্যাশে করা হয়েছিল ; আমাকে সেখান থেকে ম্যানুয়ালি মুছে ফেলতে হয়েছিল।

যে ক্ষেত্রে যখন যোগ করা হয়েছে এখানে হিসেবেkeygrip


1
উবুন্টু ১৪-১-16 এর অন্য একটি বিকল্প হ'ল গুই 'পাসওয়ার্ড এবং কী' ব্যবহার করা (এটি সন্ধান করার জন্য আপনি এসএসএসের জন্য সিচ করতে পারেন)। কোন উদাঃ ওপেনএসএস কী নির্বাচন করুন, তারপরে কীতে ডান ক্লিক করুন এবং মুছুন পছন্দ করুন। আপনার সিস্টেমটি এটি মুছে ফেলা হয়েছে তা দেখতে এটি পুনরায় চালু করার প্রয়োজন হতে পারে।
ব্যবহারকারী3257693

2
কেন ssh-agentএবং ssh-addনির্বাচিত উত্তর সম্পর্কে এই তথ্য ? আসল পোস্টারটি বলেছে যে সে চায় remove the old SSH key directly on the server and upload a new one। মনে হচ্ছে তিনি ~/.ssh/authorized_keysদূরবর্তী হোস্টে সম্পাদনা করতে চান ।
H2ONaCl

1
এই উত্তরটি আমাকে এসএস ফরোয়ার্ডিং সক্ষম করে দেখানো সমস্যা সমাধান করতে নেতৃত্ব দেয়। একটি উবুন্টু 16.04 মেশিন থেকে একটি ডেবিয়ান সিস্টেমে গিয়ে যেখানে সমস্ত ssh শংসাপত্রগুলি ফরোয়ার্ড করা হচ্ছে git cloneউবুন্টু বক্সের কনফিগারেশন ফাইলের সংস্করণের পরিবর্তে শৃঙ্খলে প্রথম কী ব্যবহার করা হয়েছিল। খারাপ কীটি স্বয়ংক্রিয়ভাবে চুষতে শুরু করে দেবিয়ান বাক্সে ফরোয়ার্ড করা হচ্ছিল।
16:55

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

1
যদি এটি কাউকে সহায়তা করে: আমি এমনকি ফাইলগুলি id_rsaএবং id_rsa.pubফাইলগুলি সম্পূর্ণ মুছতে চেষ্টা করেছিলাম এবং কীটি এখনও প্রদর্শিত হচ্ছে। দেখা যাচ্ছে জিপিজি-এজেন্ট একটি ~/.gnupg/sshcontrolফাইলে তাদের ক্যাশে করছে ; আমাকে সেখান থেকে ম্যানুয়ালি মুছে ফেলতে হয়েছিল।
রায়ান লু

10

আপনি যদি কোনও এসএস-সম্পর্কিত ক্রিয়াকলাপ সম্পাদন করার চেষ্টা করছেন এবং নিম্নলিখিত ত্রুটিটি পান:

$ git fetch
no such identity: <ssh key path>: No such file or directory

আপনি নিম্নলিখিতটি সহ আপনার এসএএস এজেন্ট থেকে হারিয়ে যাওয়া এসএসএ কীটি অপসারণ করতে পারেন:

$ eval `ssh-agent -s`  # start ssh agent
$ ssh-add -D <ssh key path>  # delete ssh key

9

আমি ভুল বোঝাবুঝি না হলে আপনি .sshআপনার স্থানীয় মেশিনে আপনার ব্যক্তিগত কী যুক্ত ডিরেক্টরিটি হারিয়ে ফেলেছেন এবং তাই আপনি সার্ভারে থাকা সর্বজনীন কীটি মুছে ফেলতে চান এবং কী-ভিত্তিক লগইনকে মঞ্জুরি দিয়েছে। .ssh/authorized_keysসেক্ষেত্রে এটি সার্ভারে আপনার হোম ডিরেক্টরিতে ফাইলটিতে সংরক্ষণ করা হবে । আপনি কেবলমাত্র একটি টেক্সট সম্পাদকের সাহায্যে এই ফাইলটি সম্পাদনা করতে পারেন এবং যদি আপনি এটি সনাক্ত করতে পারেন তবে প্রাসঙ্গিক লাইনটি মুছুন (এটি কেবলমাত্র একমাত্র প্রবেশদ্বার হলেও আরও সহজ!)। আমি আশা করি কীটি সার্ভারে অ্যাক্সেস করার একমাত্র পদ্ধতি ছিল না এবং আপনার কাছে ফাইলটি লগ ইন এবং সম্পাদনা করার অন্য কোনও উপায় রয়েছে। আপনি হয় ম্যানুয়ালি authorised_keysফাইল বা ব্যবহারের জন্য একটি নতুন পাবলিক কী যুক্ত করতে পারেন ssh-copy-id। যে কোনও উপায়েই সার্ভারে আপনার অ্যাকাউন্টের জন্য আপনার পাসওয়ার্ড প্রমাণীকরণের প্রয়োজন হবে, বা সার্ভারে authorized_keysফাইলটি পেতে অন্য কোনও পরিচয় বা অ্যাক্সেস পদ্ধতি দরকার ।

ssh-addআপনার ssh এজেন্টের সাথে পরিচয় যুক্ত করে যা স্থানীয়ভাবে আপনার পরিচয়গুলির পরিচালনা পরিচালনা করে এবং "এজেন্টের সাথে সংযোগটি এসএসএইচ দূরবর্তী লগইনগুলিতে প্রেরণ করা হয়, এবং ব্যবহারকারী এইভাবে সনাক্তকরণের দ্বারা প্রদত্ত সুযোগগুলি নেটওয়ার্কের যে কোনও জায়গায় নিরাপদ উপায়ে ব্যবহার করতে পারেন।" (ম্যান পেজ), সুতরাং আমি মনে করি না যে এই ক্ষেত্রে আপনি এটি কী চান। আমি জানি যতক্ষণ না ssh লগইনের মাধ্যমে আপনার বলা সার্ভারটিতে অ্যাক্সেস না করে কোনও সার্ভারে আপনার পাবলিক কীটি পাওয়ার কোনও উপায় নেই।


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

5

আমি আমার ইউনিটিতে "পাসওয়ার্ডস এবং কী" অ্যাপ্লিকেশনটি খুললাম এবং সিকিউর কীগুলি -> ওপেনএসএইচ কীগুলি থেকে অযাচিত চাবিগুলি সরিয়েছি এবং সেগুলি স্বয়ংক্রিয়ভাবে এসএসএস-এজেন্ট-এল থেকেও সরানো হয়েছে ।


2
সাবধান হন যে এটি তাদের ডিরেক্টরি থেকেও মুছে ~/.ssh
ফেলেছে

1

আমি নিশ্চিত করতে পারি যে এই বাগটি এখনও উবুন্টু 19.04 এ উপস্থিত রয়েছে। @ ভনসি দ্বারা প্রস্তাবিত কার্যতালিকা পুরোপুরি কাজ করেছে, আমার সংস্করণের সংক্ষিপ্তসার:

  • উপরের বাম কোণে ক্রিয়াকলাপ ট্যাবে ক্লিক করুন
  • অনুসন্ধান বাক্সে যেটি আসে, "স্টার্টআপ অ্যাপ্লিকেশনগুলি" টাইপ করতে শুরু করুন
  • "স্টার্টআপ অ্যাপ্লিকেশনগুলি" আইকনে ক্লিক করুন
  • যে বাক্সটি পপ আপ হয় তার উপর, জিনোম কী রিং ম্যানেজার অ্যাপ্লিকেশনটি নির্বাচন করুন (জিইউআই-তে সঠিক নামটি মনে করতে পারে না তবে এটি যথেষ্ট স্বতন্ত্র) এটি মুছে ফেলুন।

কি আমি পরের করেনি চেষ্টা ছিল ssh-add -Dআবার, এবং পরে পুনরায় বুট ssh-add -lআমাকে বলেছিল এজেন্ট কোন পরিচয় হয়েছে। আমি নিশ্চিত করেছি যে আমার এখনও ssh-agentডেমন চলছে ps aux | grep agent। তাই আমি প্রায়শই গিটহাব ( ssh-add ~/.ssh/id_ecdsa) এর সাথে কীটি ব্যবহার করি এবং সব ভাল!

এখন আমি আমার সর্বাধিক ঘন ব্যবহৃত রিপোজিটরির সাহায্যে স্বাভাবিক ক্রিয়াকলাপ করতে পারি এবং যদি মাঝে মাঝে আমার কাছে আরএসএ কী ব্যবহার করে এমন অন্য সংগ্রহস্থলের অ্যাক্সেসের প্রয়োজন হয় তবে আমি এটির জন্য একটি টার্মিনাল উত্সর্গ করেছি export GIT_SSH_COMMAND="ssh -i /home/me/.ssh/id_rsa.pub"। মীমাংসিত! ত্রুটি এবং সমাধানটি নির্দেশ করার জন্য ক্রেডিট @ ভনসিতে যায়।


1

আপনার সিস্টেমে .ssh কীটি পরীক্ষা করুন

  1. ফোল্ডারে -> / ব্যবহারকারী / অ্যাডমিনিস্ট্রেটর / এসএসআইডি / আইডি 25519.pub এ যান

যদি না হয়

  1. ওপেন টার্মিনাল।

টার্মিনালে অতীত

  1. ব্যবহারকারী -> ssh -T git@gitlab.com দেখুন

বিদ্যমান .ssh কী সরান

  1. বিদ্যমান .ssh কী -> আরএম ~ / .ssh / github_rsa.pub সরান

নতুন তৈরী করা

  1. নতুন .ssh কী তৈরি করুন -> ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

  2. পাবলিক কী "/ ব্যবহারকারী / অ্যাডমিনিস্ট্রেটর / এসএস / আইডি_এড 25519.pub" তে সংরক্ষণ করা হয়েছে

  3. সর্বজনীন কী সংরক্ষিত পথ খুলুন।
  4. .Ssh কী -> গিটল্যাব অ্যাকাউন্ট -> সেটিং -> এসএসএইচ কী -> কী যুক্ত করুন Copy
  5. টার্মিনাল থেকে আবার পরীক্ষা করুন -> ssh -T git@gitlab.com

0

আমার জন্য সমাধান (ওপেনসুস লিপ ৪২.৩, কে.ডি.এ) হ'ল ফোল্ডারের নাম বদলে দেওয়া ~/.gnupgযাতে কাঁচা কী এবং প্রোফাইলগুলি দৃশ্যত অন্তর্ভুক্ত ছিল। কে-ডি-ই লগআউট / লগ-ইন করার পরে আবার এস-এস-অ্যাড / এজেন্ট চলছে এবং স্ক্র্যাচ থেকে ফোল্ডারটি তৈরি করা হয়েছে, তবে পুরানো কীগুলি সমস্ত চলে গেছে।

অন্যান্য পদ্ধতির সাথে আমার সাফল্য ছিল না।

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