কেন ssh- এজেন্ট ফলাফল আউটপুট?


66

চালানোর জন্য ssh-agentআমাকে ব্যবহার করতে হবে

eval $(ssh-agent)

আমি কেন evalআউটপুট করতে হবে ssh-agent?

কেন এটি ডিজাইন করা হয়নি যাতে আমি কেবল এটি চালাতে পারি?


দ্রষ্টব্য: ব্যাকটিক্স (`) এগুলি হ্রাস করা হওয়ায় সরানো হয়েছে। উদাহরণস্বরূপ আপনি এখানে এটি সম্পর্কে আরও পড়তে পারেন ।


কে বলছে আপনাকে ওয়াল ব্যবহার করতে হবে? এই হুকুম কি? আরও কিছুটা প্রসঙ্গ সাহায্য করবে।
0x শিপডগ


9
@ 0x manপৃষ্ঠাটি শপডগ করুন , শুরু করার জন্য ...
জেসনওয়ারিয়ান

মনে হচ্ছে ব্যবহারের মামলাগুলি ম্যান পৃষ্ঠাতে নথিভুক্ত রয়েছে। হিসেবে "কেন এটা একটি নির্দিষ্ট উপায় পরিকল্পিত" ... অসহায়তা
0x শিপডগ 21

5
পুনরাবৃত্তি, এটি ssh-agent"এইভাবে ডিজাইন করা" নয়, এটি ইউনিক্স / লিনাক্স, কারণ ssh-agentশেলের একটি শিশু প্রক্রিয়াতে চলে। শিশু প্রক্রিয়াগুলি পিতামাতার প্রক্রিয়াগুলিকে সংশোধন করতে পারে না। তবে একটি ফাংশন পারে: কারণ এটি বর্তমান প্রক্রিয়াতে চলে। তাই আপনি যদি একটি ফাংশন লিখতে পেরেছিলেন: do_set_ssh_agent() { eval SSH-এজেন্ট ; }এবং যে কেবল হিসাবে চালানো যেতে পারে: $ do_set_ssh_agent। তবে "প্রোগ্রামগুলি" (সাধারণত) লিনাক্স / ইউনিক্সে "ফাংশন" হিসাবে ইনস্টল করা হয় না; পরিবর্তে, প্রোগ্রামগুলি ফাইল হিসাবে ইনস্টল করা হয়, যা উল্লিখিত রয়েছে, একটি শিশু প্রক্রিয়াতে চালিত হয়। (সোর্সিং স্ক্রিপ্টগুলি ব্যতিক্রম, তবে ssh- এজেন্ট বাইনারি হয়))
মাইকেল

উত্তর:


79

ssh-agent এর সাথে সংযোগ স্থাপনের জন্য আপনার প্রয়োজনীয় পরিবেশের ভেরিয়েবলগুলি আউটপুট করে:

shadur@proteus:~$ ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-492P67qzMeGA/agent.7948; export SSH_AUTH_SOCK;
SSH_AGENT_PID=7949; export SSH_AGENT_PID;
echo Agent pid 7949;
shadur@proteus:~$ 

evalআপনাকে কল করে তাৎক্ষণিকভাবে আপনার পরিবেশে সেই পরিবর্তনগুলি লোড করুন।

কেন ssh-agentএটি নিজেই করতে পারে না ... শব্দ পছন্দটি নোট করুন। "হবে না", " পারে না "। ইউনিক্সে, একটি প্রক্রিয়া কেবল তার নিজস্ব পরিবেশের ভেরিয়েবলগুলি সংশোধন করতে পারে এবং এগুলি বাচ্চাদের কাছে দেয়। এটি এর প্যারেন্ট প্রক্রিয়া 'পরিবেশটি সংশোধন করতে পারে না কারণ সিস্টেম এটির অনুমতি দেয় না। এটি বেশ বেসিক সুরক্ষা নকশা।

আপনার লগইন শেলটি কোথায় রয়েছে তা evalব্যবহার করে আপনি আপনার উইন্ডো ম্যানেজার বা এসএসএইচ এনভায়রনমেন্ট ভেরিয়েবল সেট করার জন্য অন্য যে কোনও জিনিসটি ব্যবহার করতে পারেন around এটি ম্যানুয়ালটিতেও উল্লেখ করা হয়েছে।ssh-agent utilityutility


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

4
@ jx12345 আপনার লগইন শেলটি কোথায় রয়েছে তা evalব্যবহার করে আপনি আপনার উইন্ডো ম্যানেজার বা এসএসএইচ এনভায়রনমেন্ট ভেরিয়েবল সেট করার জন্য অন্য যে কোনও জিনিসটি ব্যবহার করতে পারেন। এটি ম্যানুয়ালটিতেও উল্লেখ করা হয়েছে। কোনও বাহ্যিক ইউটিলিটি কলিং পরিবেশে ভেরিয়েবলগুলি সেট করতে পারে না। ssh-agent utilityutility
কুসালানন্দ

@ কুসালানন্দ সঠিক; একটি সম্পাদনা হিসাবে নিখরচায় মনে। আমি এখন বিছানায় যাচ্ছি বা আমি নিজেই করব।
শাদুর

5
@ jx12345 কারণ এটি তার নিজস্ব পরিবেশে পরিবর্তনশীল যুক্ত করতে পারে তবে এটি আপনার শেলের পরিবেশে ভেরিয়েবল যুক্ত করতে পারে না কারণ এটি আপনার শেল নয়।
ইমিবিস

3
@ jx12345 স্পষ্ট করার জন্য: আমি যদি আমার পিতামাতার প্রক্রিয়ায় env ভেরিয়েবলগুলি যুক্ত করতে বা পরিবর্তন করতে পারি তবে আমি বোধগম্যভাবে পিতামাতার পিতামাতাকে এবং আরও পিআইডি পর্যন্ত প্রভাব ফেলতে পারি This এটিকে "প্রিভিলেজ এসকেলেশন" বলা হয় এবং এটি একটি সুরক্ষার থেকে সত্যই খারাপ জিনিস thing দৃষ্টিকোণ।
শাদুর
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.