এসএসএইচ এজেন্ট ফরওয়ার্ডিং সনাক্ত করা হচ্ছে


19

এজেন্ট ফরওয়ার্ডিংয়ের সাথে বা ছাড়াই কোনও এসএসএইচ সংযোগ স্থাপন করা হয়েছে কিনা তা আমি কীভাবে জানতে পারি?

আমি নিম্নলিখিতটি করার চেষ্টা করছি:

ssh-add -D (delete all stored keys)
ssh --vvv something
ssh-add (adding key)
ssh --vvv something

এবং আউটপুট তুলনা, কিন্তু আমি শুধুমাত্র সূক্ষ্ম পার্থক্য দেখতে পারেন।


1
রেফারেন্সের জন্য, এই নিবন্ধটি দেখুন: ব্লগ.জোনকায়ারনস.কম / ২০১৩/১২ / বোঝাপড়া-ssh-agent- এবং-ssh-add । এটি আপনাকে ssh-find-agentখুব সহজেই বিদ্যমান এসএস-এজেন্টগুলি সন্ধান এবং ব্যবহারের জন্য একটি স্ক্রিপ্ট সহ একটি দুর্দান্ত গিটহাব রেপোতে নির্দেশ করে! README এ রেপোর কয়েকটি উদাহরণ রয়েছে। আপনি এসএসএইচ আউটপুট দেখার পরিবর্তে এসএসএইচ কনফিগারেশন ফাইলগুলি পরীক্ষা করার সাথে সাথে এসএসএইচ-এজেন্টটিকে সক্ষম করা হয়েছে কিনা তা সনাক্ত করতে পারবেন।
trusktr

উত্তর:


21

যখন ssh এজেন্ট ফরোয়ার্ড ক্লায়েন্টে ( ForwardAgent yesচালু ~/.ssh/config) সক্ষম হয় এবং এটি রিমোট সার্ভারে সক্ষম হয় AllowAgentForwarding yes, যখন রিমোট সার্ভারে লগ ইন করার সময় পরিবেশের পরিবর্তনশীল SSH_AUTH_SOCKউপস্থিত থাকতে হবে। তারপরে আপনি যদি অন্য সার্ভারে লগ ইন করেন (আপনার সর্বজনীন কী অবশ্যই এই তৃতীয় সার্ভারে থাকা উচিত) আপনাকে কোনও পাসওয়ার্ডের জন্য অনুরোধ করা উচিত নয়।

স্পষ্ট করা:

home$ ssh-add
Enter passphrase ...
Identity added ...
$ ssh  hostA
hostA$ env | grep SSH_AUTH_SOCK
SSH_AUTH_SOCK=/tmp/...
$ ssh hostB
hostB$

1
ssh-addআমার জন্য কি কৌতুক কি। আমি কয়েক মাস ধরে এটি সম্পর্কে না জেনে কাজ করে যাচ্ছিলাম। তারপরে আমি ইউনিটি থেকে এলএক্সডিইডিতে ডেস্কটপগুলি স্যুইচ করেছি এবং এজেন্ট কী ফরোয়ার্ডিং কাজ বন্ধ করে দিয়েছে।
মার্ক হাডসন

@ মার্কহডসন কোনও কারণে এলএক্সডিইডি চালানোর ssh-addসময় আপনি যখন কোনও নতুন কনসোল উইন্ডো খুলবেন তখন চালাতে হবে । সুতরাং আমি সেই কমান্ড লাইনটি শেষের সাথে যুক্ত করেছি ~/.bash_profileএবং এখন প্রমাণীকরণ এজেন্ট ফরওয়ার্ডিং প্রতিবার স্বচ্ছভাবে কাজ করে!
পল বার্নাল 16

@ পলবার্নাল আপনার আসলেই এটি করা উচিত নয়, আমি ধারণা করি আপনি ssh-agentসঠিকভাবে সেট আপ করেন নি । Mah.everybody.org/docs/ssh
মাইকেল মরোজেক

1
এম 2 সি: ফাইলটি "${SSH_AUTH_SOCK}"একটি সকেট, আপনি এটির মাধ্যমে পরীক্ষা করতে পারবেনif [[ ! -S "${SSH_AUTH_SOCK}" ]]; then echo "warn: no forward agent detected ('${SSH_AUTH_SOCK}' is not a socket)"; fi
বুপ

4

SSH_AUTH_SOCKসরাসরি ssh সংযোগের জন্য এর জন্য পরিবেশন পরীক্ষা করা ভাল।

আপনি যদি প্রক্সি ব্যবহার করেন ( proxy_command) আপনার মনে হতে পারে এমন একটি সংমিশ্রণ থাকতে পারে:

local-> hostA-> hostB-> hostC->hostD

যদি এজেন্ট ফরোয়ার্ডিং সমস্ত হোস্টে সক্রিয় থাকে, তবে SSH_AUTH_SOCKসেট হয়ে যাবে এবং localসমস্ত হোস্টের থেকে আপনার এসএসএস কী "অন্তর্ভুক্ত" করবে ।

এখন ধরুন এজেন্ট ফরোয়ার্ডিং অক্ষম থাকলেও hostBচালু রয়েছে hostCSSH_AUTH_SOCKসেট করা হবে hostDতবে এটি আসলে "খালি" থাকবে। অবশ্যই এজেন্ট ফরওয়ার্ড করা হয় কিন্তু শুধুমাত্র থেকে hostCথেকে hostD। চেইন ভেঙে গেছে।

এখন কীটি আসলে পাওয়া যায় কিনা তা যাচাই hostDকরতে আপনি কেবল কল করতে পারেন ssh-add। এটি যে কোনও ক্ষেত্রে কোড 1 সহ প্রস্থান করবে, তবে কীটি অনুপলব্ধ থাকলে এটি এটি এতে প্রদর্শিত হবে stderr:

আপনার প্রমাণীকরণ এজেন্টের সাথে কোনও সংযোগ খুলতে পারেনি।

সুতরাং আপনি SSH_AUTH_SOCKপ্লাস পরীক্ষা করে দেখতে পারেন ssh_addকোনও আউটপুট নেই তা নিশ্চিত করুন ।

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