ম্যাকস সিয়েরা রিবুটগুলির মধ্যে এসএসএইচ কীগুলি মনে রাখবেন বলে মনে হয় না


184

ম্যাকোজে আপগ্রেড করার পর থেকে আমাকে এই কমান্ডটি চালাতে হবে:

ssh-add -K

রিবুট হওয়ার পরে সমস্যাটি সংশোধন করে তবে প্রতিবার আমার কম্পিউটারে লগইন করে আমাকে এই কমান্ডটি চালাতে হবে।

যদি আমি উপরের কমান্ডটি চালনা না করি তবে আমার কীগুলি ~/.sshএড়িয়ে গেছে এবং সংযোগ স্থাপনের জন্য আমাকে সার্ভারের পাসওয়ার্ড জিজ্ঞাসা করা হচ্ছে।


1
$ ssh-add -Kআমাকে দেয়ssh-add: illegal option -- K
মডিউস

1
এর পরে আপনার ব্যক্তিগত কী পথে প্রবেশ করতে হবে -K। রেজুলেশনের জন্য @ জ্যাকগল্ডের উত্তর দেখুন।
বৈশাবা

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

উত্তর:


215

ম্যাকওএস সিয়েরা 10.12.2 হিসাবে অ্যাপল একটি ssh_configবিকল্প যুক্ত করেছে UseKeychainযা সমস্যার 'যথাযথ' সমাধানের অনুমতি দেয়। আপনার ~/.ssh/configফাইলে নিম্নলিখিতগুলি যুক্ত করুন:

Host *
   AddKeysToAgent yes
   UseKeychain yes     

ssh_config man10.12.2 পৃষ্ঠা থেকে :

UseKeychain

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


2
এই লিঙ্ক অনুসারে: openradar.appspot.com/27348363 অ্যাপল "এই অঞ্চলে মূলধারার ওপেনএসএসএইচ -এর সাথে [তাদের] আচরণ" পুনরায় সমন্বিত করেছে "।
টমাসডাব্লু

15
এটি অযৌক্তিক যে অ্যাপল এমনভাবে আচরণ পরিবর্তন করেছে যা বিপুল সংখ্যাগরিষ্ঠ বিকাশকারীদের জন্য সমস্যা সৃষ্টি করবে (কারণ গিটহাবের চাপ যদি অন্য কিছুই না থাকে) এবং কাউকে কিছুই বলেনি!
mluisbrown

9
আমি মনে করি এটি IdentityFile ~/.ssh/id_rsaঅপ্রয়োজনীয় এবং প্রয়োজন নেই (ডিফল্ট বিকল্পগুলির দিকে তাকালে)। আমি আমার এসএসএস কনফিগার ফাইলে এই বিকল্পটি সেট করি নি।
therealmarv

9
@ জ্যাকগল্ড আইএমও পরিবর্তনটি স্তর ~/.ssh/config~হিসাবে সমস্যা সমাধান করার কারণে এটি অগ্রাধিকারযোগ্য ssh। 100% নিশ্চিত নয় যে .bash_profileমোড GUI ক্লায়েন্টদের জন্য শেল ব্যবহার না করে ssh ব্যবহার করে কাজ করবে।
mluisbrown

7
অ্যাপল এই পরিবর্তন সম্পর্কিত প্রযুক্তিগত নোট টিএন 2449 প্রকাশ করেছে ।
কেন্টজো

106

ক্যাপিস্ট্রানো ব্যবহার করে কিছু কোড মোতায়েন করার চেষ্টা করার সময় আমারও এই সমস্যা ছিল । খুবই হতাশাজনক. এই সমস্যাটি মোকাবেলা করার জন্য আমি দুটি পদ্ধতি জানি।

পদ্ধতি 1: এসএসএইচ এজেন্টে সমস্ত পরিচিত কী যুক্ত করুন ।

তাই এক সমাধান আমি দেখেছি চালানো হয় ssh-addসঙ্গে -Aবিকল্প-যা আপনার সঞ্চিত কোনো পরিচয়-পংক্তি ব্যবহার, SSH এজেন্ট এই Keychain মত সব পরিচিত পরিচয় যোগ করেছেন:

ssh-add -A

এখন এটি কাজ করে তবে এটি রিবুটগুলি জুড়ে থাকবে না। সুতরাং আপনি যদি আর কখনও এই সম্পর্কে চিন্তা করতে না চান তবে কেবল আপনার ব্যবহারকারীর ~/.bash_profileফাইলটি এইভাবে খুলুন :

nano ~/.bash_profile

এবং এই লাইনটি নীচে যুক্ত করুন:

ssh-add -A 2>/dev/null;

এখন আপনি যখন একটি নতুন টার্মিনাল উইন্ডো খুলবেন, সমস্ত ভাল হওয়া উচিত!

পদ্ধতি 2: এজেন্টের মধ্যে কীচেইনে থাকা কেবলমাত্র এসএসএইচ কী যুক্ত করুন ।

সুতরাং ssh-add -Aবিকল্পটি বেশিরভাগ বেসিক ক্ষেত্রে কাজ করা উচিত, আমি সম্প্রতি একটি ইস্যুতে ছড়িয়ে পড়েছিলাম যেখানে আমার কাছে 6-7 ভ্যাগ্র্যান্ট বাক্স ছিল (যা অ্যাক্সেসের জন্য এসএসএইচ কী / পরিচয় ব্যবহার করে) id_rsa.pubজায়গায় আরও সাধারণ জায়গায় একটি মেশিনে সেটআপ ছিল up

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

সমস্যাটি হ'ল ssh-add -Aইচ্ছাকৃতভাবে আপনার এজেন্টের কাছে থাকা প্রতিটি এসএসএইচ কী / পরিচয় এটির প্রয়োজন হয় না এমনকি এমনকি যুক্ত করতে হবে; যেমন ভ্যাগ্র্যান্ট বাক্সগুলির ক্ষেত্রে।

অনেক পরীক্ষার পরে আমার সমাধান নিম্নলিখিত ছিল।

প্রথমত, যদি আপনার এজেন্টের সাথে আপনার প্রয়োজনের তুলনায় আরও এসএসএইচ কী / পরিচয় যুক্ত করা থাকে - যেমন দেখানো ssh-add -lহয়েছে তবে এজেন্ট থেকে তাদের সমস্ত পরিষ্কার করুন:

ssh-add -D

এটি হয়ে গেলে, তারপরে এসএসএইচ এজেন্টটিকে ব্যাকগ্রাউন্ড প্রক্রিয়া হিসাবে শুরু করুন:

eval "$(ssh-agent -s)"

এখন, এটি অদ্ভুত হয়ে যায় এবং কেন আমি খুব বেশি নিশ্চিত নই। কিছু ক্ষেত্রে আপনি ~/.ssh/id_rsaএজেন্টে বিশেষত কী / পরিচয় যুক্ত করতে পারেন:

ssh-add ~/.ssh/id_rsa

আপনার পাসফ্রেজ টাইপ করুন, আঘাত Returnএবং আপনি যেতে ভাল হবে।

তবে অন্যান্য ক্ষেত্রে কী / পরিচয় যুক্ত করার জন্য এটি কেবল চালানোই যথেষ্ট:

ssh-add -K

যদি এটি সমস্ত কাজ করে তবে টাইপ করুন ssh-add -lএবং আপনার তালিকাভুক্ত একটি একক এসএসএইচ কী / পরিচয় দেখা উচিত।

সব ভালো? এখন আপনার খুলুন .bash_profile:

nano ~/.bash_profile

এবং এই রেখাটি নীচে যুক্ত করুন; মন্তব্য করুন বা -Aসংস্করণটি যদি এটির জায়গায় থাকে:

ssh-add -K 2>/dev/null;

এটি প্রতিটি প্রারম্ভকালে / পুনরায় বুটে এসএসএইচ কী / পরিচয়টি এসএসএইচ এজেন্টকে পুনরায় লোড করতে দেয়।

আপডেট: অ্যাপল এখন UseKeychainখোলা এসএসএইচ কনফিগারেশন বিকল্পগুলির একটি বিকল্প যুক্ত করেছে এবং এর ssh-add -Aসমাধানও বিবেচনা করে ।

ম্যাকোস সিয়েরা 10.12.2 হিসাবে, অ্যাপলUseKeychain এসএসএইচ কনফিগারেশনের জন্য একটি কনফিগার বিকল্প যুক্ত করেছে। ম্যান পৃষ্ঠাটি পরীক্ষা করা (মাধ্যমে man ssh_config) নিম্নলিখিত তথ্যটি দেখায়:

UseKeychain
        On macOS, specifies whether the system should search for
        passphrases in the user's keychain when attempting to use a par-
        ticular key. When the passphrase is provided by the user, this
        option also specifies whether the passphrase should be stored
        into the keychain once it has been verified to be correct.  The
        argument must be ``yes'' or ``no''.  The default is ``no''.

অ্যাপল সমাধান এইজন্য যেমন পারেন যোগ নিচে boils কোনটি ssh-add -Aআপনার .bash_profile এই উন্মুক্ত রাডার টিকেট হিসাবে ব্যাখ্যা বা যোগ UseKeychainব্যবহারকারী প্রতি একটি বিকল্প এক হিসাবে ~/.ssh/config


4
@ মডডিয়াস: আপনার কাছে যদি পিডব্লিউ সুরক্ষিত কী থাকে, ssh-add -K [path to key]অনুরোধ জানালে pw লিখুন। কীচেইন পাসওয়ার্ড সংরক্ষণ করবে এবং এসএস-অ্যাড পরে এটি সেখান থেকে পাবে।
টিমো

2
নোট করুন -A হ'ল এজেন্টে আপনার কীচেনে থাকা কোনও পাসফ্রেস ব্যবহার করে পরিচয় যুক্ত করার জন্য। পাসফ্রেসগুলি ছাড়াও যদি আপনার পরিচয় থাকে তবে এগুলিকে আপনার এজেন্টে যুক্ত করতে আপনাকে -A বিকল্পটি বাদ দিতে হবে।
ইভান পন

12
এটিতে আরও কিছুটা দৃশ্যমানতা যুক্ত করতে অ্যাপল ssh_config এর জন্য UseKeychainএবং AddKeysToAgentনিজের ssh_config থেকে স্বয়ংক্রিয়ভাবে আপনার কীগুলি যুক্ত করতে ম্যান পৃষ্ঠাটি আপডেট করেছে । কোনও শেল স্ক্রিপ্টিং দরকার নেই। 10.12.2-র আপডেটেড তথ্যের জন্য নীচে @ এম্লুইসবাউনের উত্তর দেখুন
রায়ান গিবনস

1
@ জ্যাকগল্ড আপনি যা বলছেন আমি তা পেয়েছি, আসলে তারা যা করছে তা আমি পছন্দ করি। পাসফ্রেজগুলি কীচেইনে স্বয়ংক্রিয়ভাবে সংরক্ষণ এবং এটি বুটে লোড করার পরিবর্তে তারা আপনাকে আপনার সুরক্ষা নিয়ন্ত্রণ দিচ্ছে। / শ্রাগ
রায়ান গিবনস

1
@ রায়ানগিবনস এফডাব্লুআইডাব্লু, ওপেনড্যাডারে এই উত্তরটিতে অ্যাপল বিকাশকারী সম্পর্কের সরকারী পরামর্শটি দেখুন : "আপনি ssh-add -Aযদি নিজের চাবি সর্বদা লোড করতে চান তবে আপনি নিজের আরসি স্ক্রিপ্টে চালিয়ে খুব সহজেই এটি ঠিক করতে পারেন” " ¯\_(ツ)_/¯
জ্যাকগল্ড

16

এখানে বর্ণিত হিসাবে , এটি ম্যাকোস 10.12.2 সাল থেকে প্রস্তাবিত পদ্ধতি :

  1. আপনার ~/.ssh/configফাইলে নিম্নলিখিত লাইনগুলি যুক্ত করুন:

    Host *
        UseKeychain yes
        AddKeysToAgent yes
    
  2. কমান্ডটি ব্যবহার করে আপনি ssh-এজেন্টে যে কোনও কী যুক্ত করেন ssh-add /path/to/your/private/key/id_rsaতা স্বয়ংক্রিয়ভাবে কীচেইনে যুক্ত হবে এবং পুনরায় বুট করার পরে এটি স্বয়ংক্রিয়ভাবে চালিত হওয়া উচিত।


আমি এই উত্তরটি যুক্ত করছি কারণ:

  • অন্যান্য উত্তরগুলি আপনাকে IdentityFile ~/.ssh/id_rsaলাইনটি যুক্ত করতে বলেছে , তবে কীগুলি অটোলাইড করার জন্য সেই বিকল্পটির প্রয়োজন নেই (এবং এটি হোস্ট বিভাগের জন্য এটি নির্দিষ্ট কীটি আবদ্ধ করবে যা আপনি এতে যুক্ত করুন, যা আপনি চাইবেন না যদি আপনি বিভিন্ন কী ব্যবহার করেন তবে বিভিন্ন হট)।
  • গৃহীত উত্তরে উল্লেখ করা হয়েছে UseKeychain, তবে এটি ssh-agentপুনরায় বুট করার পরে কীগুলি চালিয়ে যাওয়া যথেষ্ট নয় ।

1
দ্বিতীয় বিষয় সম্পর্কে। তুমি কতটা নিশ্চিত? রিবুট করার পরে আসলে কিছুই ঘটে না এবং এটি আপনার রেফারেন্স উপাদানগুলিতেও উল্লেখ করা হয়নি। উপরের কনফিগারেশনের সাথে কী ঘটে তা হ'ল আপনার এসএসএইচ ক্লায়েন্টটি প্রথম সংযোগের পরে কীটি এজেন্টের মধ্যে লোড করবে (এবং এটি কীচেইন থেকে পাসফ্রেজও আনবে), তারপরে কীটি লোড থাকবে। আপনি পুনরায় বুট করার পরে কীগুলি তালিকাভুক্ত করে এই বিবৃতিটি যাচাই করতে পারবেন ssh-add -Lএবং এটি রিপোর্ট করবে The agent has no identities। আপনি সংযুক্ত না হওয়া পর্যন্ত কিছুই থাকবে না। দ্য AddKeysToAgentকোন ভাবেই পুনরায় বুট মধ্যে কী জিদ করে না!
ড্যানিলা ভারশিনিন

15

আমি এই বিষয় সম্পর্কে একটি ছোট পোস্ট লিখেছি যা আপনাকে সাহায্য করতে পারে।

একটি সমাধান ssh-add -Aপ্রতিটি স্টার্টআপে কমান্ড কলিং হয়।

কেবল .plistনীচের লিখিত সামগ্রীতে ফাইল যুক্ত করুন ~/Library/LaunchAgents/বা লিঙ্গন অ্যাপ্লিকেশন দিয়ে একটি তৈরি করুন:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>ssh-add-a</string>
    <key>ProgramArguments</key>
    <array>
        <string>ssh-add</string>
        <string>-A</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

<!-- @@@@LingonWhatStart:ssh-add -A@@@@LingonWhatEnd -->

8

যেহেতু ম্যাকোস 10.12.2 আপনি UseKeychainবিকল্পটি ব্যবহার করতে পারেন । এখানে আরও পড়ুন বা সন্ধান করুন man ssh_config

     UseKeychain
         On macOS, specifies whether the system should search for passphrases in the user's keychain
         when attempting to use a particular key. When the passphrase is provided by the user, this
         option also specifies whether the passphrase should be stored into the keychain once it has
         been verified to be correct.  The argument must be ``yes'' or ``no''.  The default is ``no''.

সুতরাং কেবল নিম্নলিখিতটি করুন:

echo "UseKeychain yes" >> ~/.ssh/config


1
>>আপনি একাধিকবার কমান্ডটি ইনপুট দিলে ব্যবহার করা ঝুঁকিপূর্ণ। মালুব্রাউন উত্তর বা ক্রিসজেএফ উত্তর দ্বারা বর্ণিত হিসাবে ফাইলটির একটি ম্যানুয়াল সংস্করণ করা ভাল ।
সিউর

আপনি ঠিক সেখানে আছেন :-)
বেন

4

আমি এটি পেয়েছি যে ssh-add -Kআমাকে " অবৈধ বিকল্প - কে " দিয়েছে। এটি কারণ ছিল যে এসএসএড অ্যাড হ'ল একটি অদ্ভুত সংস্করণ যা / ইউএসআর / লোকাল / বিন থেকে আসে (মেশানো দ্বারা ইনস্টল?) আমি / ইউএসআর / বিনে অবস্থিত এস-এস-অ্যাডের নির্দিষ্ট ব্যবহারের মাধ্যমে কীটি যুক্ত করতে সক্ষম হয়েছি:

/usr/bin/ssh-add -K ~/.ssh/id_rsa

যুগ যুগ ধরে সহজে কাজ করতে ব্যর্থ হওয়ার পরে এটিই আমার কাজ করেছিল।
nyxee

4

আমার আগে এই সমস্যা ছিল এবং আমি এটিকে বাইপাস করার একটি উপায় খুঁজে পেয়েছি। আমি স্রেফ configআমার ~/.sshফোল্ডারে একটি ফাইল তৈরি করেছি, যেখানে আমি নিম্নলিখিত লাইনগুলি যুক্ত করেছি:

Host github.com
HostName github.com
IdentityFile ~/.ssh/github
IdentitiesOnly yes

আমি নিশ্চিত না কেন, তবে Hostএবং HostNameউভয়ই গুরুত্বপূর্ণ। আমার ক্ষেত্রে যদি তাদের মধ্যে কেউ উপস্থিত না থাকে তবে সমাধানটি কার্যকর হয়নি।

তারপরে, আমি সবেমাত্র একটি করেছি ssh-add -Kএবং এটি পুনঃসূচনা হওয়ার পরেও কাজ করছে।


1
হোস্টটি কোনও নির্দিষ্ট সার্ভারের জন্য আপনার ব্যবহারকারী-সংজ্ঞায়িত নাম / উপনাম এবং প্রতি সার্ভারের জন্য এন্ট্রি সীমাবদ্ধ করে: স্টাইলিস্টিকভাবে হোস্ট এন্ট্রি অনুসরণ করে এমন লাইনগুলি ইন্ডেন্ট করা ভাল। হোস্টনাম সার্ভারের নেটওয়ার্ক ঠিকানা ঠিকানা যেমন github.com হিসাবে নির্দেশ করে তবে আপনি একটি আইপি ঠিকানাও ব্যবহার করতে পারেন। হোস্ট এবং হোস্টনেম একই জিনিস হতে হবে না, তবে হ্যাঁ, তারা উভয়ই ssh কনফিগারেশনের ফর্ম্যাটের সাথে অবিচ্ছেদ্য।
ফক্স

4

আপনি যদি ssh এর আলাদা সংস্করণ ব্যবহার করেন (যেমন হোমব্রিউয়ের মাধ্যমে ইনস্টল করা) উপরের সমাধানগুলি বাক্সের বাইরে কাজ করবে না। উদাহরণস্বরূপ, AddKeysToAgent yesএবং UseKeychain yesমধ্যে .ssh/configফাইল অ অ্যাপল SSH সংস্করণ দ্বারা স্বীকৃত হয় না এবং একটি ত্রুটি হতে হবে। ক্লায়েন্টের জন্য -Aবা -Kবিকল্পের জন্য একই ssh

তার মানে @ এমলুইসবাউনের উত্তর মোটেও কাজ করবে না। আপনি @ জ্যাকগল্ডের উত্তরের 1 পদ্ধতিটি ব্যবহার করতে পারেন এবং কীচেইনে সমস্ত কী যুক্ত করতে ssh-addআপনার ম্যাকোস ইউটিলিটি স্পষ্টভাবে ব্যবহার .bash_profileকরতে পারেন, যেমন:

/usr/bin/ssh-add -A

উপরে একটি মন্তব্যে উল্লিখিত হিসাবে , আপনাকে প্রথমে কীচেইনে একটি কী যুক্ত করতে হতে পারে: যেমন/usr/bin/ssh-add -K .ssh/github


2

সমস্ত হোস্টের জন্য UseKeyChain যুক্ত করার জন্য ~ / .ssh / কনফিগারেশন সংশোধন করা এই পুনরাবৃত্ত দুঃস্বপ্ন থামাতে যথেষ্ট;)

Host *
 UseKeychain yes

যদি ফাইলটি খালি থাকে বা উপস্থিত না থাকে তবে সহজভাবে তৈরি করুন এবং / অথবা উপরের কনফিগারেশনটি যুক্ত করুন।


1

আমি ম্যাক ওএস এক্স সিয়েরা আপডেট করেছি (10.12.6)। আমি অন্য হোস্টগুলিতে শিট করতে পারি তবে গিথুব ডট কম-এ নয়।

এটিই আমাকে ~ / .ssh / কনফিগারেশনে sertোকাতে হয়েছিল:

PubkeyAcceptedKeyTypes ssh-dss,ssh-rsa

এই পরিবর্তনের পরে আমি গিথুবকে আগের মতো ব্যবহার করতে পারতাম।

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