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


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.