ওএস এক্স মাভারিক্সে কীভাবে আমি এসএসএইচ কীচেইন ইন্টিগ্রেশন অক্ষম করতে পারি?


18

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

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

SSH_CONFIG (5) ম্যানপেজটি দেখে জিনিসগুলি আকর্ষণীয় হয়ে ওঠে । অ্যাপল সুনির্দিষ্ট: কীচেইন নিয়ে কাজ করার জন্য দুটি বিকল্প রয়েছে: এসকপাসজিইউআই এবং কীচেইন ইন্টিগ্রেশন। আপনি এগুলিকে ~ / .ssh / config এ টগল করতে সক্ষম হয়েছি এবং এর ফলে কিছু আকর্ষণীয় ফলাফল পাওয়া যায়।

AskPassGUI না-তে সেট করা, আপনাকে আর কোনও টার্মিনালে একটি ইনপুট পাঠ্য লাইনের পরিবর্তে কোনও ওএস এক্স-স্টাইল সংলাপের সাথে প্রম্পট করা হবে না। কোনও বিগি নেই। তবে আপনি যদি এটি করেন তবে ssh- এজেন্ট আপনার শংসাপত্রগুলি ক্যাশে করবে না। এটি স্পষ্টতই ভাঙ্গা এবং হতাশার কারণ শংসাপত্রগুলি ক্যাশে করা থাকলে আমি সহজেই পাঠ্য প্রম্পটের সাথে থাকতে পারি।

কীচেইন ইন্টিগ্রেশনকে না-তে সেট করা, ssh একটি হার্ড ত্রুটি নিক্ষেপ করে:

~/.ssh/config: line 11: Bad configuration option: KeychainIntegration
~/.ssh/config: terminating, 1 bad configuration options

আমার প্রশ্নটি, সহজভাবে, এটি কি: এসএসএইচ-এর জন্য ওএস এক্স কীচেন ইন্টিগ্রেশনকে অক্ষম করার কোনও উপায় আছে?


সুন্দর প্রশ্ন, আমার কাছে তাত্ক্ষণিক উত্তর নেই, তবে এটির যে ভোট রয়েছে তার সাথে আশা করি, এটি কারওর রাডারে উঠবে। আমি ওএস এক্স এর বিল্ডে বাগটি কেবলমাত্র একটি লাইন কনফিগার ফাইলের মাধ্যমে নিশ্চিত করতে পারি - হ্যাঁতে মান নির্ধারণ করে বা বর্ণিত হিসাবে ব্যর্থ হয়।
bmike

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

উত্তর:


7

এসএসএইচ-এর বর্তমান সংস্করণের উত্স কোডের ভিত্তিতে যা ম্যাভেরিক্সের সাথে শিপিং করছে ( এখানে অবস্থিত ), এটি প্রদর্শিত হয় যে কনফিগারেশন বিকল্পটির কার্যকারিতা KeychainIntegrationএখনও কার্যকর করা হয়নি। আমি এই ধারণাটি ওপেনশ / রিডকোনএফ । এর সামগ্রীর উপর ভিত্তি করে করছি , যা KeychainIntegrationবিকল্পটি উল্লেখ করে না । এটি অবশ্য askpassguiবিকল্পটি উল্লেখ করে । এই ফাইলটিতে "কীওয়ার্ডস" স্ট্রাক্ট চেক করলে প্রকৃতপক্ষে keychainintegrationবিকল্পটি উপস্থিত নেই (যা বদলে বোঝায় যে oBadOption(এনএলএল) ওপ কোডটি ফিরে আসবে)।

আর একটি ক্লু ইঙ্গিত করে যে আপনি যে কার্যকারিতাটি চান সেটি ম্যান পেজটি যেভাবে সুনির্দিষ্ট করে তা প্রয়োগ করা হয় না ফাইলটি: ওপেনশ / কিচেন.সি . উত্স কোডটি প্রকৃতপক্ষে দেখায় যে defaultsসিস্টেমটি (যেমন, সম্পত্তি তালিকার ফাইলগুলি) সম্পর্কিত সেটিংস সঞ্চয় করতে ব্যবহৃত হচ্ছে KeychainIntegration। বিশেষত, store_in_keychainফাংশন রেফারেন্স থেকে লাইনগুলি কেচেইন ইন্টিগ্রেশন:

/* Bail out if KeychainIntegration preference is -bool NO */
if (get_boolean_preference("KeychainIntegration", 1, 1) == 0) {
    fprintf(stderr, "Keychain integration is disabled.\n");
    goto err;
}

এখানে সম্পর্কিত get_boolean_preferenceফাংশন। নোট করুন যে এটি CFPreferencesCopyAppValue"org.openbsd.openssh" অ্যাপ্লিকেশন শনাক্তকারীর কাছ থেকে একটি বুলিয়ান পেতে ব্যবহার করছে:

#if defined(__APPLE_KEYCHAIN__)

static int get_boolean_preference(const char *key, int default_value,
int foreground)
{
int value = default_value;
CFStringRef keyRef = NULL;
CFPropertyListRef valueRef = NULL;

keyRef = CFStringCreateWithCString(NULL, key, kCFStringEncodingUTF8);
if (keyRef != NULL)
    valueRef = CFPreferencesCopyAppValue(keyRef,
        CFSTR("org.openbsd.openssh"));
if (valueRef != NULL)
    if (CFGetTypeID(valueRef) == CFBooleanGetTypeID())
        value = CFBooleanGetValue(valueRef);
    else if (foreground)
        fprintf(stderr, "Ignoring nonboolean %s preference.\n", key);

if (keyRef)
    CFRelease(keyRef);
if (valueRef)
    CFRelease(valueRef);

return value;
}

#endif

এটি বোঝাতে পারে যে আপনি KeychainIntegrationএই ডিফল্ট কমান্ডটি সম্পাদন করে নিজের জন্য কার্যকারিতা অক্ষম করতে পারেন :

defaults write org.openbsd.openssh KeychainIntegration -bool NO

বা এটি সমস্ত ব্যবহারকারীর জন্য সেট করতে:

sudo defaults write /Library/Preferences/org.openbsd.openssh KeychainIntegration -bool NO


2
আপনি গভীর খনন করেছেন, এবং আমি এটির প্রশংসা করি। আমি সেটিং চেষ্টা KeychainIntegrationকরার NOমাধ্যমে defaultsআপনি সুপারিশ করেছে। sshতারপর যেন আমি সেট চাই আচরণ করবে AskPassGUIমধ্যে ~/.ssh/configকোন পরিচয়পত্র ক্যাশে করা হয়, এবং আমি পাসফ্রেজ জন্য সব সময় অনুরোধ করছি -। দরকারী কম। তবুও, আমি মনে করি আপনি প্রশ্নের উত্তর দিয়েছেন, এবং উত্তরটি সহজভাবে, "এটি অক্ষম করা যেতে পারে, তবে এটি পুরোপুরি বাস্তবায়িত হয় না এবং সম্ভবত আপনি ফলাফল পছন্দ করবেন না।"
জিম

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