অন্য অ-রুট ব্যবহারকারী থেকে এসএসএইচ_এইউথ_সককে অ্যাক্সেস করা হচ্ছে


11

পরিস্থিতি:

আমি আমার স্থানীয় পিসিতে এসএসএল-এজেন্ট চালাচ্ছি এবং আমার সমস্ত সার্ভার / ক্লায়েন্ট এসএসএইচ এজেন্টের লেখার ফরোয়ার্ড সেটআপ করছে। আমি আমার স্থানীয় পিসিতে এসএসএল-এজেন্ট ব্যবহার করে আমার সমস্ত মেশিনের মধ্যে হ্যাপ করতে পারি। ওই কাজগুলো.

আমার নিজের (ইউজার 1) হিসাবে কোনও মেশিনে এসএসএইচ করতে সক্ষম হওয়া দরকার , ইউজার 2 ( সুডো- আই-ইউ ইউজার 2) নামে অন্য কোনও ব্যবহারকারীতে পরিবর্তন করুন , এবং তারপরে আমি আমার স্থানীয় পিসিতে চালাচ্ছি এমন এসএসএল-এজেন্ট ব্যবহার করে অন্য বাক্সে এসএসএস করতে পারব। আসুন বলি যে আমি ssh ইউজার 3 @ মেশিন 2 এর মতো কিছু করতে চাই (ধরে নিলাম যে ব্যবহারকারী 3 এর কাছে অনুমোদিত_কিজ ফাইলগুলিতে আমার সর্বজনীন এসএসএইচ কী রয়েছে)।

আমি এসএসএইচ_এইউথ_সক পরিবেশের পরিবর্তনশীল রাখতে sudo কনফিগার করেছি ।

জড়িত সমস্ত ব্যবহারকারী (ব্যবহারকারী [১-২]], অননুমোদিত ব্যবহারকারী (মূল নয়)।

সমস্যাটি:

যখন আমি অন্য ব্যবহারকারীর কাছে পরিবর্তন করি, যদিও এসএসএইচ_এইউটিএসএইচসি ভেরিয়েবলটি সঠিকভাবে সেট করা থাকে, (এর সেটটিকে বলতে পারি: /tmp/ssh-HbKVFL7799/agent.13799) ব্যবহারকারীর দ্বারা তৈরি করা সকেটে ব্যবহারকারী 2 এর অ্যাক্সেস নেই - কোনটি কোর্সটি বোঝায়, অন্যথায় ইউজার 2 ব্যবহারকারী 1 এর ব্যক্তিগত কী হাইজ্যাক করতে পারে এবং সেই ব্যবহারকারী হিসাবে আশেপাশে যেতে পারে hop

এই দৃশ্যটি ঠিক আছে যদি ইউজার 2 এর জন্য সুডোর মাধ্যমে শেল পাওয়ার পরিবর্তে আমি মূলের জন্য সুডোর মাধ্যমে একটি শেল পাই। কারণ স্বাভাবিকভাবে রুটটিতে মেশিনের সমস্ত ফাইল অ্যাক্সেস থাকে।

প্রশ্নটি:

সাধারণত সুডো ব্যবহার করে, আমি কীভাবে ব্যবহারকারীর 1 থেকে ব্যবহারকারী 2 এ পরিবর্তন করতে পারি, তবে এখনও ব্যবহারকারীর এসএসএইচ_এইউথ_সকে অ্যাক্সেস পেতে পারি?

উত্তর:


12

আপনার দুটি জিনিস করতে হবে:

  1. SSH_AUTH_SOCKভেরিয়েবল সেট করুন যাতে এটি সঠিক ফাইলটিতে নির্দেশ করে
  2. অন্য ব্যবহারকারীকে সকেটে সংযুক্ত হওয়ার অনুমতি দিন (ফাইল সিস্টেমের অনুমতি ব্যবহার করে)

অতএব, আপনি যা করতে পারেন তা হ'ল:

ব্যবহারকারী 1 হিসাবে, ব্যবহারকারীকে সকেটের সাথে সংযোগ করার অনুমতি দিন (সকেটে সম্পূর্ণ অ্যাক্সেস এবং ডিরেক্টরিতে প্রবেশের অনুমতি)। আমি আশা করি আপনার /tmpএসিএল অনুমতি দেয়।

setfacl -m u:user2:rw $SSH_AUTH_SOCK
setfacl -m u:user2:x $(dirname $SSH_AUTH_SOCK)

অন্য ব্যবহারকারীর কাছে পরিবর্তন করুন এবং ভেরিয়েবলটি সঠিকভাবে রফতানি করুন।

sudo -u user2 env SSH_AUTH_SOCK=$SSH_AUTH_SOCK ssh user3@machine2

আপনি যদি ইন্টারেক্টিভ শেলটি ব্যবহার করে খুলতে চান তবে শেলটি পাওয়ার পরে আপনাকে নিজেই পরিবর্তনশীলটি sudoরফতানি SSH_AUTH_SOCKকরতে হবে।


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