এসএস-এজেন্টের উদ্দেশ্য কী?


70

আমি সরকারী সংজ্ঞা পড়েছি:

ssh- এজেন্ট একটি প্রোগ্রাম যা সর্বজনীন কী প্রমাণীকরণের জন্য ব্যবহৃত ব্যক্তিগত কী (আরএসএ, ডিএসএ, ইসিডিএসএ) রাখে। ধারণাটি হ'ল এক্স-সেশন বা লগইন সেশনের শুরুতে এসএসএইচ-এজেন্ট শুরু হয় এবং অন্যান্য উইন্ডো বা প্রোগ্রামগুলি এসএসএইচ-এজেন্ট প্রোগ্রামের ক্লায়েন্ট হিসাবে শুরু হয়। এনভায়রনমেন্ট ভেরিয়েবল ব্যবহারের মাধ্যমে এজেন্টটি সনাক্ত করা যায় এবং ssh (1) ব্যবহার করে অন্য মেশিনগুলিতে লগ ইন করার সময় প্রমাণীকরণের জন্য স্বয়ংক্রিয়ভাবে ব্যবহৃত হতে পারে।

".. একটি ব্যক্তিগত কী রাখার জন্য একটি প্রোগ্রাম .." - আইএমএইচও - এসএসএস কীগুলি ssh-keygen কমান্ড সহ ব্যবহারকারী দ্বারা উত্পন্ন হয় এবং simply / .ssh এ কেবল & সোজাভাবে সংরক্ষণ করা হয় - এই কীগুলি ধরে রাখার জন্য আমার কেন কিছু ডিমন প্রয়োজন? এটি ঠিক কীভাবে এগুলি ধরে রাখে - সেগুলি কি কেবল .ssh এ সঞ্চিত নেই?

"এস-এস-এজেন্ট প্রোগ্রামের ক্লায়েন্ট হিসাবে শুরু করা হয়েছে" - আমি তা পাই না। কার দরকার হবে কোথায়? আমি সাধারণত এই হিসাবে ssh ব্যবহার করি:

 ssh -i ~/.ssh/private_key_name username@hostname

"ক্লায়েন্ট" দ্বারা ম্যানুয়ালটির সঠিক অর্থ কী - ক্লায়েন্টরা কী? সংযোগের জন্য আপনি কি টার্মিনাল থেকে কেবল ssh কমান্ড চালাচ্ছেন না - অন্যান্য ক্লায়েন্টরা কী আছে এবং তারা কেন ssh কমান্ডের মতো কেবল এই ssh প্রাইভেট ফাইলের পথ ব্যবহার করতে পারে না?

উত্তর:


75

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

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

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

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


10
আমি মনে করি এটি সর্বাধিক সম্পূর্ণ উত্তর, তবে একটি পয়েন্ট এখনও অনুপস্থিত। কী এজেন্ট ব্যবহার করাও একাধিক কী সহজেই ব্যবহার করতে দেয়। কীটির পাথ নির্দিষ্ট করার পরিবর্তে, কী এজেন্ট ssh ব্যবহার করার সময় এতে প্রতিটি কী চেষ্টা করা হবে।
প্যাট্রিক

3
@ পেট্রিক যা এটির অসুবিধাও হতে পারে - কোনও সার্ভারে অনেকগুলি অবৈধ কী ব্যবহার করে দেখুন এবং বৈধ কীটি পাওয়ার আগে এটি সংযোগটি বন্ধ করে দেবে। অবশ্যই, যে কি ~/.ssh/config'র IdentityFileবিকল্প বা এজেন্ট ছাড়া, জন্য ভাল
Tobias Kienzler

@ পেট্রিক যা কোনও এজেন্ট ছাড়াই সমানভাবে সম্ভব বলে মনে হয়
অ্যান্ড্রে

@ অ্যান্ড্রে ফেডোরভ হ্যাঁ আপনি কোনও এজেন্ট ছাড়াই একাধিক কী পেতে পারেন, তবে ~/.ssh/configকোন দূরবর্তী হোস্টের জন্য আপনার কোন কীটি ব্যবহার করবেন তা আপনি নিজের নির্দিষ্ট করেও বলতে পারেন যাতে এটি ঠিক কোনটি প্রয়োজন তা জানে।
প্যাট্রিক

3
সুতরাং কেউ অনুমান করতে পারে যে ssh-agentকোনও ব্যক্তিগত কী কোনও পাসফ্রেজ দ্বারা সুরক্ষিত না হলে এটি প্রয়োজনীয় নয়?
পিকারামল

16

এর সুবিধাটি ssh-agentহ'ল আপনাকে একবার আপনার পাসফ্রেজটি প্রবেশ করতে হবে। যদি আপনার ব্যক্তিগত আরএসএ কী কোনও পাসফ্রেজের সাহায্যে এনক্রিপ্ট করা না থাকে তবে ssh- এজেন্টের প্রয়োজন নেই। sshকমান্ড একটি ক্লায়েন্ট একটি উদাহরণ হতে পারে।


7

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

আরও একটি সুবিধা হ'ল manপৃষ্ঠা অনুসারে, এজেন্ট কখনও তার অনুরোধ চ্যানেলে কোনও প্রাইভেট কী প্রেরণ করে না; সুতরাং আপনি যদি বিভিন্ন বাক্সের মধ্যে ঝাঁপিয়ে পড়ে থাকেন তবে আপনার ব্যক্তিগত কীগুলি সুরক্ষিত থাকবে।

1life এজেন্টের মধ্যে কীগুলি রাখা হয় তা আপনি সেট করতে পারেন ।


6

উইকিপিডিয়া নিবন্ধ সম্ভবত সবচেয়ে ভাল বিবরণ আছে:

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

আবার উইকিপিডিয়া নিবন্ধ থেকে ভারব্যাটিম:

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

এটি সাধারণত কোনও সিস্টেম বা ব্যবহারকারীর আরসি ফাইল যেমন $HOME/.bashrcবা $HOME/.profileবাশ শেলের জন্য রাখা হয় যাতে পরিবেশের ভেরিয়েবলগুলি ssh-agentআপনার পরিবেশে সম্পূর্ণরূপে সংহত হয়।

আমার ফেডোরা 14 সিস্টেমে এটি এক্স 11 সাবসিস্টেমের অংশ হিসাবে বেশ তাড়াতাড়ি শুরু হয়। এই ফাইলটিতে /etc/X11/xinit/xinitrc-common:

# Prefix launch of session with ssh-agent if available and not already running.
SSH_AGENT=
if [ -z "$SSH_AGENT_PID" ] && [ -x /usr/bin/ssh-agent ]; then
    if [ "x$TMPDIR" != "x" ]; then
        SSH_AGENT="/usr/bin/ssh-agent /bin/env TMPDIR=$TMPDIR"
    else
        SSH_AGENT="/usr/bin/ssh-agent"
  fi
fi

ভেরিয়েবলটি $SSH_AGENTএখানে অন্য এক্স 11 স্টার্ট-আপ স্ক্রিপ্টগুলিতে ব্যবহার করা হয় /etc/X11/xinit/Xclients:

exec -l $SHELL -c "$SSH_AGENT $XCLIENTS_D/Xclients.$1.sh"

এটি এখানে অন্তর্ভুক্ত করে, নিম্নলিখিত পরিবেশের ভেরিয়েবলগুলি প্যারেন্ট শেলের অংশ হিসাবে সেট হয়ে যাচ্ছে, সুতরাং সমস্ত কাঁটাযুক্ত বাচ্চাদেরও তাদের থাকা উচিত, উদাহরণস্বরূপ:

SSH_AUTH_SOCK=/tmp/ssh-PspRF18958/agent.18958; export SSH_AUTH_SOCK;
SSH_AGENT_PID=18959; export SSH_AGENT_PID;

এতে আরও কিছুটা জটিলতা রয়েছে তবে সংক্ষেপে এটি মূলত যা চলছে তা ssh-agent

জিনোমে উদাহরণস্বরূপ, ssh-agentআসলে প্রতি ব্যবহারকারীকে একটি স্টার্ট-আপ অ্যাপ্লিকেশন হিসাবে চালু করা হয়:

                     স্টার্টআপ অ্যাপস এর এসএস

টি এল; ডিআর

নীচের লাইনটি ssh-agentবিদ্যমান, যাতে আপনার এসএস কীগুলি দরকার হলে আপনাকে কেবল তাদের পাসফ্রেজ দিয়ে একবার তাদের আনলক করতে হবে (ধরে নিলে তাদের একটি রয়েছে) এবং তারপরে সেগুলি তাদের ডিক্রিপ্ট করা আকারে মেমরি (র‌্যাম) এ উপলব্ধ।


1

"ssh-এজেন্ট প্রোগ্রামের ক্লায়েন্ট হিসাবে শুরু করা হয়" ধারণাটি বোঝায় যে (স্থানীয়) লগইন সেশন সূচনা করার সময় ssh-এজেন্টটি শুরু হয়েছিল যাতে সমস্ত প্রোগ্রাম পরিবেশের ভেরিয়েবল পায় $SSH_AGENT_PIDএবং $SSH_AUTH_SOCKযা এজেন্টের সাথে সংযোগের জন্য প্রয়োজনীয়।

Ssh এর বাইরে প্রাইভেট কী হ্যান্ডলিংয়ের আরেকটি সুবিধা হ'ল gpg-এজেন্ট দ্বারা ssh-এজেন্ট প্রতিস্থাপন করা যেতে পারে। সুতরাং আপনি এসএসএইচের জন্য ওপেনজিপি কী (প্রমাণীকরণের ক্ষমতা সহ) ব্যবহার করতে পারেন। এটি একটি স্মার্টকার্ডের ওপেনপিজিপি কীগুলির জন্য একটি দুর্দান্ত সমাধান।

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