কীভাবে ভাগ করা কীগুলি। এসএসএস / অনুমোদিত_কিজ এবং সুডো একসাথে কাজ করবেন?


15

আমি .ssh / अधिकृत_keys সেটআপ করেছি এবং পাব / প্রাইভেট কী ব্যবহার করে নতুন "ব্যবহারকারীর" সাথে লগইন করতে সক্ষম হয়েছি ... sudoers তালিকায় আমি "ব্যবহারকারী" যুক্ত করেছি ... আমার এখন সমস্যাটি তখন আমি একটি sudo কমান্ড কার্যকর করার চেষ্টা করি, এর মতো সাধারণ কিছু:

$ sudo cd /root

এটি আমার পাসওয়ার্ডের জন্য আমাকে অনুরোধ করবে, যা আমি প্রবেশ করি, তবে এটি কার্যকর হয় না (আমি যে ব্যক্তিগত কী পাসওয়ার্ডটি সেট করেছি সেটি ব্যবহার করছি)

এছাড়াও, আমি ব্যবহারকারীর পাসওয়ার্ড ব্যবহার করে অক্ষম করেছি

$ passwd -l user

আমি কী মিস করছি?

কোথাও আমার প্রাথমিক মন্তব্যগুলি ভুল বোঝাবুঝি করা হচ্ছে ...

আমি আমার সিস্টেমকে শক্ত করার চেষ্টা করছি ... চূড়ান্ত লক্ষ্য হ'ল পাব / ব্যক্তিগত কীগুলি লগইনগুলি করতে সাধারণ পাসওয়ার্ড প্রমাণীকরণের জন্য। আমি অনুমোদিত_কিগুলি ফাইলের মাধ্যমে কীভাবে সেগুলি সেট আপ করতে পারি তা সন্ধান করেছি।

অতিরিক্ত হিসাবে আমি চূড়ান্তভাবে রুট অ্যাকাউন্টের মাধ্যমে সার্ভার লগইনগুলি আটকাব। তবে আমি এটি করার আগে আমার দ্বিতীয় ব্যবহারকারীর জন্য কাজ করার জন্য সুডো দরকার (যে ব্যবহারকারীটি আমি সিস্টেমে সারাক্ষণ লগইন করব)।

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

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


সম্পাদনা: ঠিক আছে, আমি মনে করি এটি পেয়েছি (সমাধান):

1) আমি / etc / ssh / sshd_config সামঞ্জস্য করেছি এবং সেট করেছি PasswordAuthentication no এটি ssh পাসওয়ার্ড লগইনগুলি রোধ করবে (এটি করার আগে একটি কর্মক্ষম পাবলিক / প্রাইভেট কী সেটআপ রয়েছে তা নিশ্চিত হন

2) আমি sudoers তালিকা সামঞ্জস্য visudoএবং যোগ করেছি

root      ALL=(ALL) ALL
dimas     ALL=(ALL) NOPASSWD: ALL

৩) মূলটি একমাত্র ব্যবহারকারী অ্যাকাউন্ট যা একটি পাসওয়ার্ড পাবে, আমি দুটি ব্যবহারকারীর অ্যাকাউন্ট "ডিমাস" এবং "শেরি" দিয়ে পরীক্ষা করছি যা পাসওয়ার্ড সেট নেই (পাসওয়ার্ড ফাঁকা, passwd -d user)

উপরেরটি প্রয়োজনীয়ভাবে প্রত্যেককে পাসওয়ার্ড সহ সিস্টেমে প্রবেশ করতে বাধা দেয় (একটি পাবলিক / প্রাইভেট কী সেটআপ করতে হবে)।

অতিরিক্ত হিসাবে sudoers তালিকার ব্যবহারকারীদের অ্যাডমিন ক্ষমতা আছে। তারা suবিভিন্ন অ্যাকাউন্টেও করতে পারেন । সুতরাং মূলত "ডিমাস" করতে পারে sudo su sherry, তবে "ডিমারা করতে পারে না su sherrySimilarly একইভাবে sudoers তালিকার কোনও ব্যবহারকারী না করতে পারে su userবা করতে পারে না sudo su user

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

উত্তর:


10

sshএবং sudoএকে অপরের সাথে কিছুই করার নেই। একটি sshপ্রমাণীকরণ পদ্ধতি সেট আপ করার জন্য কিছুই করতে যাচ্ছে না sudosudoএকটি sshপাসওয়ার্ড বুঝতে যাচ্ছে না ।

passwd -lকোনও ব্যবহারকারীর অ্যাকাউন্ট লক করার উদ্দেশ্যে, যাতে সে আর পাসওয়ার্ড দিয়ে প্রমাণীকরণ করতে না পারে। এটি আপনি যা চান তার সম্পূর্ণ বিপরীত, যা ব্যবহারকারীকে কোনও পাসওয়ার্ড ছাড়াই প্রমাণীকরণ করতে দেয়।

আমি মনে করি আপনি যা চান তা আপনার ফাইলেরNOPASSWD বিকল্প ।sudoers

(দ্রষ্টব্য, একটি চলমান হতে কোন কারণে cdকমান্ড sudocdযেমন পিতা বা মাতা প্রক্রিয়াগুলিতে সঞ্চারিত করে না, তাই যত তাড়াতাড়ি sudoপ্রস্থান করে, তুমি ফিরে এসেছ তুমি কোথায় শুরু করে।)

সম্পাদনা: আপনি বলে চলেছেন যে আপনি অ্যাকাউন্টের পাসওয়ার্ডটি লক করতে চান এবং পাবলিক / প্রাইভেট কীগুলি বুঝতে সুডো চান want দুঃখিত, sudo ssh কী ব্যবহার করবে না। এটা ssh না। আপনি যদি না চান ব্যবহারকারীরা তাদের পাসওয়ার্ড দিয়ে লগ ইন করতে সক্ষম হন তবে আমি মনে করি উত্তরটি অ্যাকাউন্ট লক না করেই এসএস পাসওয়ার্ড প্রমাণীকরণ অক্ষম করা । তারপরে আপনি ব্যবহারকারীদের জন্য একটি পাসওয়ার্ড ধরে রাখতে পারেন, যা তারা ssh অনুমোদিত_keys এর মাধ্যমে লগ ইন করার পরে sudo ব্যবহার করতে পারে।


ঠিক আছে, তবে কি ব্যবহারকারীর দ্বারা কোনও পাসওয়ার্ড নেই: passwd -l ব্যবহারকারী ... sudo কমান্ডটি কাজ না করার কারণ করে?
farinspace

@ ফারিনস্পেস হ্যাঁ, আমি প্রশ্নটি আরও ভাল করে বুঝতে পেরেছি এবং আমার মন্তব্যগুলিকে যথেষ্ট প্রসারিত করেছি। passwd -lঅ্যাকাউন্টটি লক করা এই অর্থে পাসওয়ার্ডটি সরিয়ে দেয় - অর্থাৎ কোনও পাসওয়ার্ড কাজ করবে না। আপনি sudo মধ্যে পাসওয়ার্ড প্রমাণীকরণ বন্ধ করতে চান।
কনস্লেয়ার

এই যুক্তিটি কীভাবে: sudoers ফাইলে পাসওয়ার্ড বন্ধ করা এখনও সুরক্ষিত থাকবে, কারণ পাব / প্রাইভেট কী লগইনগুলির মাধ্যমে সিস্টেমটি কঠোর করা হয়েছে ... এবং কেবলমাত্র অ্যাডমিন ব্যবহারকারীদের sudoers তালিকায় যুক্ত করতে সক্ষম হবে
farinspace

যখন কোনও ব্যক্তিগত কী ব্যবহার করা হয় তখন এটির জন্য একটি পাসওয়ার্ড সেট করা সাধারণত, বা এটি সার্ভার
লগিনে

4
@ কনস্লেয়ার এই উত্তরটি 100% সঠিক নয়। আপনি নীচে দেখতে পাচ্ছেন যে, sush প্রমাণীকরণের সম্মানের জন্য কনফিগার করা যেতে পারে।
আন্দ্রে দে মিরান্ডা

18

আপনি যা করতে চান তা সম্ভব তবে এটির জন্য কিছু অভিজ্ঞতার প্রয়োজন হবে কারণ আপনাকে প্যাম-এসএস-এজেন্ট-অউথ নামক একটি প্যাম মডিউল সংকলন করতে হবে ।

প্রক্রিয়াটি যুক্তিসঙ্গতভাবে সহজ:

$ sudo aptitude install libssl-dev libpam0g-dev build-essential checkinstall
$ wget "http://downloads.sourceforge.net/project/pamsshagentauth/pam_ssh_agent_auth/v0.9.3/pam_ssh_agent_auth-0.9.3.tar.bz2"
$ tar -xjvf pam_ssh_agent_auth-0.9.3.tar.bz2
$ cd pam_ssh_agent_auth-0.9.3

$ ./configure --libexecdir=/lib/security --with-mantype=man

$ make
$ sudo checkinstall

Sudo কনফিগারেশন সম্পাদনা করুন:

$ sudo visudo

নিম্নলিখিত যুক্ত করুন:

Defaults env_keep += SSH_AUTH_SOCK

সুডো পিএএম সেটিংস পরিবর্তন করে চালিয়ে যান:

$ sudo vi /etc/pam.d/sudo

যুক্ত করুন (@ অন্তর্ভুক্ত লাইনের ঠিক উপরে):

**auth [success=2 default=ignore] pam_ssh_agent_auth.so file=~/.ssh/authorized_keys**
@include common-auth
@include common-account


4
এটি গ্রহণযোগ্য উত্তর হওয়া উচিত
ক্রিস্টোফার মনসান্টো

1
এই নির্দেশাবলী (বিশেষত /etc/pam.d/sudoনির্দেশাবলী) বর্তমান উবুন্টু সংস্করণগুলির পুরানো। আমি আমার উত্তরে আপডেট নির্দেশাবলী দিয়েছি।
ক্রিস পিক

4

আন্ড্রে ডি মিরান্ডার উত্তরটি পাম_এসএইচ_এজেন্ট_আউথ ব্যবহার করে একটি দুর্দান্ত সমাধান সরবরাহ করে তবে অংশগুলি পুরানো । বিশেষত /etc/pam.d/sudoঅনেকগুলি লিনাক্স সংস্করণ ব্যবহার করার সময় নির্দেশাবলী।

আপনি যদি উবুন্টু 12.04 সুনির্দিষ্টভাবে চালাচ্ছেন, তবে আমি আসলে পিপিএ: পিপিএ: সিপিক / পাম-এসএস-এজেন্ট- আথ তৈরি করে একটি pam_ssh_agent_auth বিল্ড সরবরাহ করে প্রক্রিয়াটি সহজ করেছি ।

আপনি চালিয়ে প্যাকেজ ইনস্টল করতে পারেন:

sudo add-apt-repository ppa:cpick/pam-ssh-agent-auth
sudo apt-get install pam-ssh-agent-auth

ইনস্টলেশনের পরে, যদি আপনি এই পিএএম মডিউলটি সুডোর সাথে ব্যবহার করতে চান তবে আপনাকে সুডোর সেটিংস এবং পিএএম কনফিগারেশন কনফিগার করতে হবে, উবুন্টু 12.04 এ আপনি নিম্নলিখিত দুটি ফাইল তৈরি করে তা করতে পারেন:

/etc/sudoers.d/pam-ssh-agent-auth:

Defaults    env_keep+="SSH_AUTH_SOCK"

/etc/pam.d/sudo:

ent#%PAM-1.0

auth       required   pam_env.so readenv=1 user_readenv=0
auth       required   pam_env.so readenv=1 envfile=/etc/default/locale user_readenv=0
auth       sufficient pam_ssh_agent_auth.so file=/etc/security/authorized_keys
@include common-auth
@include common-account
@include common-session-noninteractive

আপনি যদি শেফ ব্যবহার করছেন তবে উপরের প্রক্রিয়াটি আমার কুকবুকের সাহায্যে স্বয়ংক্রিয়ভাবে তৈরি করা যেতে পারে, যা নিম্নলিখিত দুটি স্থানে পাওয়া যায়:
https://github.com/cpick/pam-ssh-agent-auth
http: //commune.opscode .com / কুকবুক / পাম-এসএস-এজেন্ট-আথ

পাকপ্রণালীর এর filesডিরেক্টরি ধারণকারী /etc/pam.d/sudoএবং /etc/sudoers.d/pam-ssh-agent-authউবুন্টু 12.04 সুনির্দিষ্ট সঙ্গে যে কাজ উপরে বর্ণিত ফাইল এবং যখন অন্য সংস্করণের / ডিস্ট্রো ব্যবহার করে একটি সহায়ক আদ্যস্থল হওয়া উচিত।


-1

পাসওয়ার্ড প্রবেশ করানোর বাইপাস জানার একমাত্র উপায় হ'ল এটি আপনার sudoersফাইলে অক্ষম করা ।

ভালো কিছু দিতে হবে rootএবং সকল সদস্যদের wheel পূর্ণ কোন পাসওয়ার্ড দিয়ে অ্যাক্সেস করুন:

root    ALL=(ALL)   NOPASSWD: ALL
%wheel  ALL=(ALL)   NOPASSWD: ALL

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


আমি পাসওয়ার্ডটি ব্যবহার করে কিছু মনে করি না, সমস্যাটি মনে হচ্ছে: আমি ব্যবহারকারীর পাসওয়ার্ডটি অক্ষম করার পরে যাচ্ছি: passwd -l ব্যবহারকারী ... আমি এখনও পাব / প্রাইভেট কী এর মাধ্যমে সিস্টেমে লগইন করতে পারি (ব্যক্তিগত কীতে একটি সুরক্ষিত পাসওয়ার্ড রয়েছে) , যখন আমি একটি সুডো করি এটি পাসওয়ার্ডের জন্য জিজ্ঞাসা করে তবে এটি ব্যক্তিগত কী থেকে মনে হয় এটি পাসওয়ার্ড নয়, ব্যবহারকারীর জন্য এটি পাসওয়ার্ড অক্ষম করা থাকলে এই পাসওয়ার্ডটি কোথায় সেট করা হয় (আমি বরং সিস্টেমে পাসওয়ার্ড বজায় রাখতে এড়াতে চেষ্টা করব এবং ব্যক্তিগত কী)
farinspace

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

আপনাকে রিমোট সিস্টেমে অ্যাকাউন্টটি পুনরায় সক্ষম করতে হবে এবং তারপরে পাসওয়ার্ডটি সেট করতে হবে। যে কোনও উপায়ে, আপনার অবশ্যই দুটি মেশিনে পাসওয়ার্ড বজায় রাখা উচিত। যদি কোনও ত্রুটির ক্ষেত্রে স্থানীয় লগইন ছাড়া অন্য কোনও কারণে না হয়।
জ্যাক এম।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.