কিভাবে SSH কীগুলির সাথে ম্যাক ওএস এক্স কীচেন ব্যবহার করবেন?


134

আমি বুঝি যে যেহেতু ম্যাক ওএস এক্স চিতাবাঘ থেকে কীচেন এসএসএইচ কী সংরক্ষণে সমর্থিত হয়েছে। কেউ এই বৈশিষ্ট্য কাজ করা অনুমিত হয় দয়া করে ব্যাখ্যা করুন।

আমার কিছু RSA কী আছে যা আমি বিভিন্ন সার্ভারগুলিতে অ্যাক্সেসের জন্য আমার ~ / .ssh ডিরেক্টরিতে সংরক্ষিত করেছি। আমি ঐ কি সেট পাসফ্রেজ আছে না। বর্তমানে সেসব সার্ভারগুলিতে লগ ইন করার জন্য আমি টার্মিনালে নিম্নলিখিত কমান্ড ব্যবহার করি:

eval `ssh-agent`
ssh-add ~/.ssh/some_key_rsa
ssh user@server

(এটিকে আরও সহজ করার জন্য আমি কিছু বাশ ফাংশন লিখেছি।)

Keychain ব্যবহার করে এটি করার একটি ভাল উপায় আছে?

উত্তর:


16

এটা কাজ করার জন্য, দী $SSH_AUTH_SOCK পরিবেশ পরিবর্তনশীল নির্দেশ করা উচিত /tmp/launch-xxxxxx/Listeners। লগ ইন করার সময় এটি স্বয়ংক্রিয়ভাবে সম্পন্ন করা উচিত। সেই সকেটের শ্রোতা ssh-agent প্রোটোকলটি কথা বলে।

আপনার ব্যাশ স্ক্রিপ্টগুলি আপনার নিজের এসএসএইচ এজেন্ট (বানানযুক্ত) শুরু করছে ssh-agent, ssh_agent না) এবং বিদ্যমান overriding ssh-agent যে লগইন এ আপনার জন্য সেট আপ করা হয়।

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

অবশেষে, যখন আপনি প্রথম লগ ইন করেন, সম্ভবত আপনি একটি ssh-এজেন্ট প্রক্রিয়া দেখতে পাবেন না। যে প্রক্রিয়া লঞ্চ সেবা দ্বারা স্বয়ংক্রিয়ভাবে শুরু হবে প্রথমবার যে সকেট পড়তে চেষ্টা করে /tmp


1
ধন্যবাদ। তাই আমি এখনও চালানো হবে ssh-add লগ ইন করার সময় ডিফল্ট এসএসসি এজেন্টে আমার আরএসএ সনাক্তকরণ যোগ করতে?
John Topley

আপনি ssh-add চালানোর প্রয়োজন নেই; ssh-এজেন্ট প্রথমবারের মতো ssh চালানোর সময় কী-এর পাসফ্রেজ জিজ্ঞাসা করবে।
Rudedog

3
এটি এসএসএস চালানোর সময় পাসওয়ার্ডের জন্য আমাকে অনুরোধ করে। বিন্দু যে আমি কোনো পাসওয়ার্ড লিখতে চান না।
John Topley

1
পাসওয়ার্ডের জন্য আপনাকে কী পরামর্শ দিচ্ছে? আমি সন্দেহ করছি যে এটি রিমোট সার্ভার যা আপনাকে উত্সাহ দিচ্ছে, যা আপনার বিবৃতি দেয় যে আপনার কীগুলি ভাল দৃষ্টিকোণে পাসফ্রেজ নেই। আপনি রিমোট সার্ভারে পাসওয়ার্ডটি বাইপাস করতে চাইলে, আপনার কাছে আপনার সর্বজনীন কী যুক্ত করতে হবে $HOME/.ssh/authorized_keys যে সার্ভারে। ম্যাক ওএসের এস-এজেন্ট + কীচেন কেবল আপনার স্থানীয় ssh কীগুলির জন্য পাসফ্রেজ সংরক্ষণ করতে ব্যবহৃত হয়; এটি বিদ্যমান ssh সংযোগের উপর দূরবর্তী পাসওয়ার্ড পাঠানোর উদ্দেশ্যে নয়।
Rudedog

1
ব্যবহার ssh -v ssh কি করছেন নির্ণয় করতে। এছাড়াও ব্যবহার করুন sshd -p 8900 -v সার্ভার পাশ এবং ssh -v remote:8900 sshd কি করছেন তা নির্ণয় করতে।
Rudedog

246

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

কীচিনে প্রতিটি ssh কীতে পাস ফ্রেজ যুক্ত করুন: (বিকল্প -k লোড কেবল ব্যক্তিগত প্রাইভেট কী, সনদগুলি বাদ দেয়)

ssh-add -K [path/to/private SSH key]

(মনে রাখবেন যে একটি রাজধানী কে)

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

ssh-add -l

30
এই গ্রহণযোগ্য উত্তর হতে হবে।
Kris

2
গৃহীত উত্তর এই নির্দিষ্ট ব্যবহারকারীর প্রশ্নের উত্তর দেয়, তবে এটি সাধারণ ব্যবহারকারীর প্রশ্নের উত্তর দেয়
eqzx

2
developer.apple.com/library/mac/documentation/Darwin/Reference/... আপনি keychain মধ্যে পাসফ্রেজ সংরক্ষণ করার জন্য -K বিকল্প প্রয়োজন।
Neeme Praks

5
হোমব্রু মত একটি প্যাকেজ সিস্টেমের মাধ্যমে আপনি এসএসএইচ এর অন্য সংস্করণ ইনস্টল করলে, যেমন পরম পথ ব্যবহার করা প্রয়োজন /usr/bin/ssh-add
Ludovic Kuty

4
MacOS সিয়েরা জন্য, জিনিস পরিবর্তিত হয়েছে। দেখ github.com/jirsbek/SSH-keys-in-macOS-Sierra-keychain
schieferstapel

74

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


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

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

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


নিম্নলিখিত অব্যবহৃত (রেফারেন্স জন্য রাখা)।

পূর্ববর্তী আচরণে ফিরে যেতে, আপনি চালাতে চান ssh-add -A আপনি যখন লগ ইন করেন তখন কমান্ডটি (যে সমস্ত ssh কীগুলি আপনার কীচেন-এ পাস-বাক্যাংশগুলি স্বয়ংক্রিয় লোড করে) লোড করে। এটি করার জন্য, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. প্রথমে, আপনি যে সমস্ত কী অটো-লোড করতে চান তা যুক্ত করুন SSH-এজেন্ট ব্যবহার করে ssh-add -K /absolute/path/to/your/private/key/id_rsa কমান্ড। দ্য -K যুক্তি নিশ্চিত করে যে মূল পাস-ফ্রেজ যোগ করা হয় MacOS এর keychain । আপনি কি চূড়ান্ত পাথ ব্যবহার করুন তা নিশ্চিত করুন। একটি আপেক্ষিক পথ ব্যবহার করে অটো-লঞ্চ স্ক্রিপ্টটি আপনার কীটি খুঁজে না পায়।

  2. আপনি টাইপ করার সময় আপনার সমস্ত কী যোগ হিসাবে দেখানো হয়েছে তা নিশ্চিত করুন ssh-add -A

  3. একটি ফাইল তৈরি করুন com.yourusername.ssh-add.plist মধ্যে ~/Library/LaunchAgents/ নীচের বিষয়বস্তু সঙ্গে। প্লাস্টার ফাইল যেমন এই এক ব্যবহার করা হয় launchd আপনি লগ ইন যখন স্ক্রিপ্ট চালানোর জন্য। [2] [3]

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
    <key>Label</key>
      <string>com.user.loginscript</string>
    <key>ProgramArguments</key>
      <array>
        <string>ssh-add</string>
        <string>-A</string>
      </array>
    <key>RunAtLoad</key>
      <true/>
    </dict>
    </plist>
    
  4. বলা launchd লোড করা প্লেস্ট ফাইল আপনি শুধু নির্বাহ করে তৈরি করেছেন: launchctl load ~/Library/LaunchAgents/com.yourusername.ssh-add.plist

এবং আপনি সব সেট করা উচিত।


slm

30

চেয়ে একটি সহজ উপায় আছে রিকার্ডোর উত্তর 10.12 সিয়েরা চলমান আপনার ম্যাকের সেশন / পুনঃসূচনাগুলির মধ্যে আপনার পাসওয়ার্ডটি চালিয়ে যেতে।

  1. ssh-add -K ~/.ssh/id_rsa
    দ্রষ্টব্য: আপনার id_rsa কী কোথায় অবস্থিত তা পরিবর্তন করুন।
  2. ssh-add -A
  3. তৈরি করুন (অথবা এটি বিদ্যমান থাকলে সম্পাদনা করুন) ~/.ssh/config ফাইল:

    Host *
      UseKeychain yes
      AddKeysToAgent yes
      IdentityFile ~/.ssh/id_rsa
    

    এখন পাসওয়ার্ড রিস্টার্ট মধ্যে মনে হয়!

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


2
আশ্চর্যজনক, একটি কবজ মত কাজ করে, imho অনেক ক্লিনার তারপর অন্যদের এবং সঠিক জায়গায় সমাধান :)
GerardJP


9

দ্রষ্টব্য: ম্যাকোস সিয়েরা জন্য, আরো সাম্প্রতিক পড়ুন ক্রিস জেএফ উত্তর

[জেফ ম্যাককারেলের উত্তর] [2] সঠিক, ব্যবধানে যোগ করার কমান্ডটি হাইফেনের পরিবর্তে একটি ড্যাশ রয়েছে, যেমন। –K পরিবর্তে -K, প্রভাব একটি বার্তা যার ফলে –K: No such file or directory। এটা পড়তে হবে:

ssh-add -K [path/to/private SSH key]

2
এটি একটি উত্তরের উত্তরের পরিবর্তে আপনি যে উত্তরটি উল্লেখ করেছেন তার একটি মন্তব্য হওয়া উচিত। আমরা এখানে নিরাপত্তা সম্পর্কে কথা বলছি। কেউ আপনাকে অন্ধকার অনুলিপি এবং পেস্টিংয়ের পরিবর্তে সতর্কতার সাথে এটি টাইপ করা উচিত বলে মনে করতে পারে ssh-add -K
Phil_1984_

1
কে সঙ্গে একটি হাইফেন ব্যবহার করে, আমি পেতে illegal option -- K। লোকেস কে একটি বিকল্প হিসাবে তালিকাভুক্ত করা হয়।
Sam Dutton

সাহায্য করার জন্য ধন্যবাদ. আমি শুধু ম্যাকোস সিয়েরাতে চেক করেছি: -K, যেমন ড্যাশ-ক্যাপিটাল-কে, এখনও বৈধ
simonair

6

আমি আপনাকে ডিফল্ট ব্যবহার করা হয় না সন্দেহ ssh কমান্ড। তোমার আছে কি ssh বন্দর মাধ্যমে ইনস্টল করা? চেষ্টা which ssh যা দেখতে ssh আপনি ব্যবহার করছেন কমান্ড।

সাধারণত এটি আপনার কাছে কীচেইনে সংরক্ষিত না থাকলে এটি আপনার পাসওয়ার্ড জিজ্ঞাসা করার জন্য একটি ডায়লগ বাক্স প্রদর্শন করা উচিত।


আমি পোর্ট ব্যবহার করছি না।
John Topley

তথ্যের জন্য ধন্যবাদ :) আমার সমস্যা ছিল কারণ আমি হোমব্রু থেকে OpenSSH ব্যবহার করছিলাম।
ggustafsson

6

একটি ক্লায়েন্ট ssh সার্টিফিকেট ব্যবহার করে লগইন করার চেষ্টা করার সময় আমি একই সমস্যা ছিল। এই নির্দিষ্ট ক্ষেত্রে এটি একটি গিট রিপোজিটরি অ্যাক্সেস করার জন্য ছিল। এই অবস্থা ছিল:

  • কী সংরক্ষিত ছিল ~/.ssh/
  • ব্যক্তিগত কী একটি পাসফ্রেজ আছে।
  • পাসফ্রেজটি OS X লগইন কীচেইনে সংরক্ষিত হয়। ~/Library/Keychains/login.keychain
  • নিম্নরূপ সংযোগ ছিল: আমার ম্যাক -> রিমোট ম্যাক -> জিটি / এসএসএস সার্ভার
  • ম্যাক ওএস এক্স 10.8.5

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

  1. security unlock-keychain পাসফ্রেজ লগইন keychain মধ্যে সংরক্ষিত হয়। এটি আনলক করে এবং ssh-agent এটি অ্যাক্সেস করতে সক্ষম করে।
  2. eval `ssh-agent -s` শেল ব্যবহার জন্য ssh এজেন্ট আরম্ভ। এটি কীচেন থেকে পাসফ্রেজ পাবে এবং এটি ব্যক্তিগত সিসি কী আনলক করতে ব্যবহার করবে।
  3. এসএসএস / গিট সংযোগ স্থাপন করুন এবং আমার কাজ করুন।
  4. eval `ssh-agent -k` চলমান ssh এজেন্ট হত্যা।
  5. security lock-keychain আবার keychain লক।

1
# 2 এর জন্য ওরফে আমার জন্য কাজ করার জন্য, আমাকে ব্যবহার করতে হয়েছিল eval \$(ssh-agent) প্রতি Re: দূরবর্তী লগইন এবং keychain । যখন একটি উপনাম মধ্যে না eval $(ssh-agent) কাজ করে ( ব্যাকস্ল্যাশ ছাড়া $ )।
Travis

4

আরো দেখুন:

security import priv_key.p12 -k ~/Library/Keychains/login.keychain
security import pub_key.pem -k ~/Library/Keychains/login.keychain

... আরো বিস্তারিত জানার জন্য এই নোট যোগ করা হয়েছে: "নিরাপত্তা" কমান্ড সরাসরি কীচেনগুলিতে কী (এবং অন্যান্য জিনিস) আমদানি করতে সক্ষম। চমৎকার জিনিসটি ssh-add এর বিপরীতে, আপনি কীচেন নির্দিষ্ট করতে সক্ষম। এটি সিস্টেমকে কীচেন (সরাসরি "ম্যান সুরক্ষা" কীভাবে শিখতে পারে) এ আমদানি করতে পারে।


1
আপনি এই উত্তর একটি বিট আরো বিস্তারিত দিতে পারে দয়া করে? ধন্যবাদ।
Matthew Williams

1

সেরা এবং অ্যাপল উদ্দেশ্যে সমাধান (ম্যাকোস 10.12.2 থেকে) বর্ণনা করা হয়েছে এখানে

তাই শুধু নিম্নলিখিত কাজ করুন:

echo "UseKeychain yes"> gt; & gt; ~ / .Ssh / কনফিগ


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

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