ম্যাক ওএস এক্স লায়নটিতে প্রতিবার পাসফ্রেজ প্রবেশ না করে লগ ইন করতে কীভাবে এসএসএইচ প্রাইভেট কী ব্যবহার করবেন?


23

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

সুরক্ষার কারণে, আমি মনে করি, এসএসএইচ প্রাইভেট কী ব্যবহার করার জন্য একটি পাসফ্রেজ আবশ্যক must কোনও উপায় আছে যা টার্মিনালটিকে শুরুতে ঠিক একবারে বাক্যাংশটি জিজ্ঞাসা করার পরে, এটি মুখস্ত করে, এবং পরবর্তীকালে এসএসএইচ সেশনে স্বয়ংক্রিয়ভাবে আমার ব্যক্তিগত কী ব্যবহার করে?

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

অতএব, আমি স্ট্যাকএক্সচেঞ্জে এসেছি, নিম্নলিখিত প্রশ্নগুলির বিষয়ে কিছু পরামর্শ চেয়েছি।

  1. কি কি ssh-agent, ssh-add, keychain, Keychain Access.appএবং কীভাবে তারা একে অপরের সাথে যোগাযোগ?
  2. লগইন করার সময় আমি কীভাবে আমার এসএসএইচ প্রাইভেট কীটির পাসফ্রেজটি প্রবেশ করতে পারি এবং পরে এসএসএইচ সেশন তৈরির সময় এটি অবাধে ব্যবহার করতে পারি?
  3. ত্রুটি ... এতে কী হয়েছে Keychain Access.app? এটি এসএসএইচ বাক্যাংশটি আগের মতো সংরক্ষণ করে না।

আমি এখানে যা করেছি তা তালিকাবদ্ধ করি। আশা করি যে পদক্ষেপগুলি আমি মিস করেছি তার সম্পর্কে ক্লু রয়েছে।

পদক্ষেপ 1. আমার ম্যাক এ একটি এসএসএইচ কী জুড়ি তৈরি করুন।

$ ssh-keygen -t rsa -C "me@email.com"
# Set a passphrase for accessing the private key.

পদক্ষেপ 2. দূরবর্তী হোস্টে আমার এসএসএইচ পাবলিক কী অনুলিপি করুন। উদাহরণস্বরূপ, আমি লোকালহোস্ট, ম্যাকের চাবিটি অনুলিপি করছি।

$ ssh-copy-id USER@localhost
# Enter the login password for USER at localhost, not my SSH passphrase

পদক্ষেপ ৩. তারপরে এসএসএইচ কী জোড় প্রমাণীকরণের মাধ্যমে রিমোট হোস্টের সাথে (এখানে লোকালহোস্ট) সংযুক্ত হওয়ার চেষ্টা করুন।

$ ssh USER@locahost
Enter passphrase for key '/Users/YOUR_ACCOUNT/.ssh/id_rsa': 
# Enter my SSH passphrase, not the login password.

পদক্ষেপ 4. দূরবর্তী হোস্ট থেকে লগআউট এবং এটি আবার সংযোগ করার চেষ্টা করুন। এটি হতাশ, টার্মিনালটি আবার এসএসএইচ বাক্যাংশের জন্য জিজ্ঞাসা করে।

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

$ echo $SSH_AUTH_SOCK
/tmp/launch-M48niA/Listeners
$ echo $SSH_AUTH_PID
(EMPTY)
$ ssh-add -l
Could not open a connection to your authentication agent.
$ ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-Z54zXukQiP/agent.26769; export SSH_AUTH_SOCK;
SSH_AGENT_PID=26770; export SSH_AGENT_PID;
echo Agent pid 26770;
$ ssh-add -l
Could not open a connection to your authentication agent.
$ echo $SSH_AUTH_SOCK
/tmp/launch-M48niA/Listeners
$ echo $SSH_AUTH_PID
(STILL EMPTY)
$ ssh-agent  # Oh no, anther ssh-agent with different PID
SSH_AUTH_SOCK=/tmp/ssh-cx0B4FUX8B/agent.26898; export SSH_AUTH_SOCK;
SSH_AGENT_PID=26899; export SSH_AGENT_PID;
echo Agent pid 26899;
$ ps -e | grep -i ssh
26769 ??         0:00.03 ssh-agent
26899 ??         0:00.02 ssh-agent

কোন প্রতিক্রিয়া স্বাগত জানানো হয়। ধন্যবাদ!


সম্পর্কিত । আপনার ব্যবহারের ক্ষেত্রে গ্রহণযোগ্য উত্তরটি আপনি মানিয়ে নিতে পারেন এমন সম্ভাবনা রয়েছে ces
ড্যানিয়েল বেক

উত্তর:


12

ssh-agentআপনি যে কাজটি করতে চান সেটি হ'ল এটি যেমন আপনি যা জিজ্ঞাসা করছেন ঠিক তেমন করে। এজেন্ট একটি ডেমন হিসাবে চালায়, এবং আপনি যখন এটিতে একটি ব্যক্তিগত কী "যুক্ত" করেন তখন এটি সেই কীটি মনে রাখে এবং sshdপ্রাথমিক সংযোগের সময় এটি স্বয়ংক্রিয়ভাবে রিমোটকে সরবরাহ করে । ( ssh-addম্যানুয়ালি একটি ব্যক্তিগত কী যুক্ত করতে আপনি যে আদেশটি চালাচ্ছেন তা হ'ল ssh-agent)।

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

সকেটের launchdসংযোগগুলির জন্য শোনার কনফিগারেশন থাকার মাধ্যমে এটি পরিচালনা করা হয় $SSH_AUTH_SOCKএবং ssh-agentযখন এটি প্রথম প্রয়োজন তখন স্বয়ংক্রিয়ভাবে চালু হয়; এর পরে, ssh-agentআপনাকে কেবল শংসাপত্রগুলির জন্য অনুরোধ জানানো হয় যখন এটির জন্য একটি নতুন কী খোলার প্রয়োজন।

যদি এটি কাজ না করে, আপনার কাছে সঠিক launchdকনফিগারেশন ফাইল উপস্থিত রয়েছে তা নিশ্চিত করুন:

/System/Library/LaunchAgents/org.openbsd.ssh-agent.plist

যদি এটি এখনও কোনও কারণে আপনার জন্য কাজ না করে, তবে হাত দিয়ে জিনিস চালানোর "পুরানো" উপায়টি এখানে:

http://timesinker.blogspot.com/2007/08/getting-ssh-agent-going-on-mac-osx.html

এই অ্যাপ্লিকেশনটিও রয়েছে, যা আমি চিতাবাঘের বাইরে আসার পর থেকেই ব্যবহার বন্ধ করে দিয়েছি তবে ম্যাক ওএস এক্স এর পূর্ববর্তী সংস্করণগুলিতে মূলত একই কাজটি করেছে:

http://www.sshkeychain.org/


4
ধন্যবাদ, মাইকেল ইডেনফিল্ড আমি কী ভ্রান্ত হচ্ছে তা বুঝতে পেরেছি এবং এখন এসএস-লগইন-ব্যতীত পাসফ্রেজ ম্যাক ওএস এক্স লায়নটিতে পুরোপুরি কাজ করে। আমি কিছু বোকা কাজ করেছি - প্রতি 2 ঘন্টা পরিষ্কার করার ~/tmpজন্য আমি একটি প্রতীকী লিঙ্ক তৈরি করেছি /tmp/এবং একটি ক্রোন জব চালাচ্ছি ~/tmpযা এসএস-এজেন্ট সকেটও সরিয়ে ফেলেছে। ওহ মানুষ, আমি নিজেকে ঘৃণা করি।
জিয়ানওয়েন ডব্লিউ।

13

"সমস্যা" সমাধান করার প্রক্রিয়া চলাকালীন, আমি কিছু সম্পর্কিত বিষয়গুলি googled এবং নিচে কিভাবে সম্পর্কে কিছু নোট লিখতে থাকেন ssh-agent, ssh-add, keychain, KeyChain Access.appহবে। পরিশেষে দেখা যাচ্ছে যে এই সমস্যাটি মোটেই কোনও সমস্যা নয়, পরিবর্তে সমস্যাটি আমার সম্পর্কে, এবং তথাকথিত ssh-login-জিজ্ঞাসা-ব্যতীত-পাসফ্রেজ-প্রতিবার ম্যাকের বাইরে পুরোপুরি কাজ করে

তবে এই প্রক্রিয়াটি আমাকে কিছু অভিজ্ঞতা অর্জন করে। আমি এখানে আমার নোটগুলি এই আশায় লিখছি যে তারা এই শর্তগুলি সম্পর্কে বিভ্রান্ত কাউকে সহায়তা করবে।

দুটি পাসওয়ার্ড শর্তাদি:

  • passphrase আপনার এসএসএইচ ব্যক্তিগত কীতে অ্যাক্সেস করার সময় প্রয়োজনীয় বাক্যাংশটি বোঝায়।
  • password আপনার ম্যাকটিতে লগ ইন করতে প্রয়োজনীয় বাক্যাংশটি বোঝায়।

এখন আমি চিন্তা করতে পারেন কি এই টুলকিট করি, যে, ssh-agent, ssh-add, keychain, Keychain Access.appMac এ।

  • ssh-agentএসএসএইচ পাসফ্রেজ টাইপ না করে এসএসএইচ প্রাইভেট কী ব্যবহার করা সক্ষম করার জন্য গুরুত্বপূর্ণ পরিষেবা। ssh-agentএইভাবে কাজ করে। প্রথমে এটি মূল স্মৃতিতে আপনার এসএসএইচ প্রাইভেট কী সংরক্ষণ করে বা ক্যাশে করে । তারপরে এই অধিবেশনের পরবর্তী সময়ে যখন আপনার এসএসএইচ প্রাইভেট এসএসএইচ কীটি দূরবর্তী শংসাপত্রের জন্য প্রয়োজন হয়, তখন আপনার ssh-agentমূল স্মৃতিতে আপনার প্রাইভেট কীটি খুঁজে পাবেন এবং এটিকে দূরবর্তী প্রক্রিয়াতে হস্তান্তর করবেন। আপনার প্রাইভেট কীটি ssh-agentপ্রাথমিকভাবে যুক্ত করা হলে আপনাকে কেবল নিজের এসএসএইচ পাসফ্রেজ টাইপ করতে বলা হয় ।
  • ssh-addssh-agentসংগ্রহের অংশ , যা আপনার এসএসএইচ কীগুলি পরিচালনা করতে সহায়তা করে ssh-agent। আমরা ssh-addssh-এজেন্টের কীরিংগুলিতে ব্যক্তিগত কীগুলি তালিকাবদ্ধ করতে, যুক্ত করতে এবং মুছে ফেলার জন্য কমান্ড ব্যবহার করি । তারপরে কাজগুলি সম্পাদন করার জন্য সেবার ssh-addসাথে যোগাযোগ করে ssh-agent
  • keychainssh-agentপরিষেবা সন্ধানের স্ক্রিপ্ট (যদি তা না থাকে তবে একটি নতুন শুরু করুন) এবং ssh-addএসএসএইচ ব্যক্তিগত কী যুক্ত করার জন্য কল করুন। keychainলিনাক্সে ঠিকঠাক কাজ করার ক্ষেত্রে একটি সহজ এবং সোজা-ফরোয়ার্ড ধারণা রয়েছে যেখানে ssh-एजেন্ট সাধারণত স্বয়ংক্রিয়ভাবে শুরু হয় না।
  • Keychain Access.appসবচেয়ে জটিল উপাদান বলে মনে হচ্ছে। এটি ম্যাক ওএস এক্সের সর্বজনীন টোকেন স্টোরেজ পরিষেবা। এটি বিভিন্ন টোকেন যেমন পাসওয়ার্ড, শংসাপত্র, ইত্যাদি ইত্যাদি সঞ্চয় করে এবং সেই অ্যাপ্লিকেশনগুলির জন্য টোকেন এজেন্ট হিসাবে কাজ করে যা টোকেনগুলির অনুরোধ করে। আমাদের এসএসএইচ প্রাইভেট কী ক্ষেত্রে, প্রথমে এটি এসএসএইচ প্রাইভেট কীটি অ্যাক্সেস করার জন্য অনুরোধটি গ্রাস করে এবং আপনাকে এসএসএইচ পাসফ্রেজ, যা এক ধরণের টোকেন, Keychain Access.appএর কীরিংয়ের মধ্যে সংরক্ষণ করতে বলার জন্য একটি উইন্ডো পপ করে । তারপরে যখন আপনি অনুমোদনের জন্য প্রাইভেট কীগুলি ব্যবহার করবেন তখন Keychain Access.appঅধিকারটি দেওয়া হচ্ছে কিনা তা জিজ্ঞাসা করে আবার একটি উইন্ডো পপ আপ করে। বড় হ্যাঁ পাওয়ার পরে keychain Access.appআপনার প্রাইভেট কীটি ssh-agentস্টোরেজে যুক্ত করে adds

দুটি বিষয় আপনার মনোযোগ প্রাপ্য:

  1. ম্যাক ওএস এক্স লায়ন স্বয়ংক্রিয়ভাবে শুরুতে একটি ssh-agentপরিষেবা শুরু করে, এর অধীনে একটি সকেটে শোনা /tmp
  2. Keychain Access.appআপনার এসএসএইচ পাসফ্রেজ সংরক্ষণ করে, যাতে এটি ssh-agentআপনাকে বাধা না দিয়ে আপনার ব্যক্তিগত কী যুক্ত করতে পারে। হ্যাঁ, আপনার এসএসএইচ শব্দবন্ধটি টাইপ করার দরকার নেই, তবে প্রথমবারের জন্য এই এন্ট্রিটি তৈরি করার সময় আপনার ম্যাক অ্যাকাউন্টের লগইন পাসওয়ার্ডটি বিশেষত প্রদানের জন্য টাইপ করা দরকার।

সুতরাং, সংক্ষেপে, এসএসএইচ-লগইন-ছাড়াই-জিজ্ঞাসা-পাসফ্রেজটি বাক্সের বাইরে ম্যাক ওএস এক্সে কাজ করা উচিত।


1

যদি এখানে অন্যান্য সমাধানগুলি মানুষের পক্ষে কাজ না করে তবে নিম্নলিখিতগুলি আমার পক্ষে কাজ করেছে।

আপনার ~ / .ssh ডিরেক্টরিতে প্রতিটি প্রাইভেট কী জন্য, সংশ্লিষ্ট পাবলিক কী উপস্থিত রয়েছে তা নিশ্চিত করুন। নিশ্চিত হয়ে নিন যে সর্বজনীন কীটি প্রাইভেট কী হিসাবে ঠিক একই নামের সাথে .pubশেষ পর্যন্ত রয়েছে। আপনার যদি ইতিমধ্যে একটি উপযুক্ত পাবলিক কী থাকে তবে এটি পুনরায় তৈরি করার চেষ্টা করুন।

আপনার যদি পাবলিক কীগুলি পুনরায় তৈরি করতে হয় তবে আপনি খুব সহজেই এটি করতে পারেন: -

ssh-keygen -y -f ~/.ssh/my_key > ~/.ssh/my_key.pub

my_keyআপনার কী বলা হয় তার সাথে প্রতিস্থাপন ।

এরপরে, ম্যাকোস কীচেইনে কী পাসফ্রেজগুলি মনে করা উচিত তা মনে করে reme

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

(মূলত অ্যাপল স্ট্যাক এক্সচেঞ্জের অনুরূপ প্রশ্নের উত্তর থেকে)


1

~/.sshফোল্ডারটি কনফিগার করার ক্ষেত্রে আমি যে বিষয়টি খুব কমই উল্লেখ করেছি তা হ'ল ডিরেক্টরি অনুমতিগুলি সীমাবদ্ধ।

পাসওয়ার্ড জিজ্ঞাসা করা এড়াতে এসএসএস সক্ষম করতে আমাকে সর্বদা ব্যবহারকারীর হোম ডিরেক্টরি অনুমতি 700এবং ~/.sshফোল্ডারের অনুমতিও সেট করে রাখতে 700হয়েছিল।

অন্যথায় এটি আমার কাছে কী পাসওয়ার্ড জিজ্ঞাসা করতে অবিরত রয়েছে যখন আমার কাছে সমস্ত কীগুলি উত্পন্ন হয়েছে এবং সঠিকভাবে অনুলিপি করা হয়েছে। প্রমাণীকরণ লগগুলিতে একটি ত্রুটি বার্তা উত্পন্ন হয় তবে এটি বেশিরভাগ অংশের জন্য শেষ ব্যবহারকারীর কাছে অদৃশ্য।


0

আরেকটি জিনিস যা আপনি চেষ্টা করতে পারতেন তা হ'ল এর ssh-copy-idমতো কিছু দিয়ে k="$(cat ~/.ssh/id_rsa.pub)"; ssh username@somehost.com "umask 0077; mkdir -p ~/.ssh; echo "$k" >> ~/.ssh/authorized_keys2"


0

এই উত্তরটি সামান্যই এই প্রশ্নের সমাধান নয়; তবে এটি খুব কাছে (আমার সমস্যার সমাধান অনুসন্ধান করার সময় আমি এই প্রশ্নটি শেষ করেছি)।

আমি আমার ম্যাকের রিমোট সার্ভারগুলিতেও অনেকগুলি এসএসএইচ করি, যেমন এই প্রশ্নে বর্ণিত হয়েছে তবে Keychain Access.appঅ্যাপটি কীফ্রেস সঞ্চয় করে ফেলেছে এবং এসএসএইচ সার্ভারে প্রমাণীকরণের জন্য আমার যতবার দরকার হবে তা টাইপ করার দরকার নেই।

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

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


আমি এখানে আমার অনুরূপ সমাধানটি লিখেছি superuser.com/a/659668/154113
orkoden

0

আমি এই সমস্যা নিয়ে ভাবছি। ssh আপেলগুলির জন্য আমাদের বিভাগের প্রতিটি মেশিনের জন্য কাজ করে (ম্যাকবুকস বা আইম্যাকগুলি কোনও বিষয় নয়)। আমি অবশেষে পাসওয়ার্ড টাইপ করে ক্লান্ত হয়েছি এবং এটি ডিবাগ করার সিদ্ধান্ত নিয়েছি।

আমি শেয়ারিং অগ্রাধিকার প্যানেলে আমার আইম্যাক এবং অক্ষম sshd এ গিয়েছি। তারপরে আমি রুট করতে পেরেছি এবং ডিবাগ মোডে sshd ফায়ার করতে "/ usr / sbin / sshd -d" টাইপ করেছি। এরপরে আমি সেই মেশিনে প্রেশার চেষ্টা করেছি এবং এটি তাত্ক্ষণিকভাবে প্রোটোকল 2 ব্যবহার করার চেষ্টা করেছিল, যা সবকিছু ঠিকঠাক ব্যবহার করে বলে মনে হয়, তবে এসএসডি তাত্ক্ষণিকভাবে জানিয়েছে যে এটি "অনুমোদিত_প্রেমী" খুঁজে পাচ্ছে না। আমার একটি অনুমোদিত_কিস 2 ফাইল ছিল যা আমার সমস্ত লিনাক্স, সোলারিস, আপনার নাম-এটি ইউনিক্স বাক্সগুলিতে ঠিক আছে accept আমি কেবল অনুমোদিত_কিগুলি 2 অনুমোদিত_কি এবং বিওএম-তে অনুলিপি করেছি। এখন পুরোপুরি কাজ করে।

* কী 2 এর চেয়ে * কীগুলি অজানা। বিশেষত যখন ওএস এক্স পরিচিত_হোস্ট 2 এর সাথে বেশ খুশি হয়।

যাই হোক না কেন, এখন আমাদের সমস্ত অ্যাপল বাক্সগুলিতে লগ ইন করা যেতে পারে বা সেই ব্লাস্টড পাসওয়ার্ড ছাড়াই তাদের উপর রিমোট কমান্ডগুলি কার্যকর করা যেতে পারে: প্রম্পট ...

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