কীভাবে পাবলিক কী এসএস অনুমোদনের জন্য অ্যাকাউন্ট আনলক করবেন তবে পাসওয়ার্ড অনুমোদনের জন্য নয়?


32

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

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

# passwd -u username
passwd: unlocking the password would result in a passwordless account.
You should set a password with usermod -p to unlock the password of this account.

এথ লগ এন্ট্রি:

Mar 28 00:00:00 vm11111 sshd[11111]: User username not allowed because account is locked
Mar 28 00:00:00 vm11111 sshd[11111]: input_userauth_request: invalid user username [preauth]

আপনার (আইএমএইচও) সমস্ত ব্যবহারকারীর জন্য এটি করা উচিত ... পুরো
এসএসডি এর

passwd -uএকটি খারাপ ধারণা। গাইলস বেলো দ্বারা উত্তর দেখুন।
পিটার জেনকিনস

উত্তর:


15

অ্যাকাউন্টটি আনলক করুন এবং @ স্কাইপেনের পরামর্শ অনুসারে ব্যবহারকারীকে একটি জটিল পাসওয়ার্ড দিন।

আপনার সম্পাদনা করুন /etc/ssh/sshd_configএবং নিশ্চিত করুন :

PasswordAuthentication no

লাইনটি মন্তব্য করা হয়নি তা পরীক্ষা করুন ( #শুরুতে) এবং ফাইলটি সংরক্ষণ করুন। পরিশেষে, sshdপরিষেবাটি পুনরায় চালু করুন ।

আপনি এটি করার আগে, আপনার সর্বজনীন কী প্রমাণীকরণ প্রথমে কাজ করছে তা নিশ্চিত করুন।

আপনার যদি কেবলমাত্র একজন (বা একটি অল্প সংখ্যক) ব্যবহারকারীর জন্য এটি করতে হয় তবে PasswordAuthenticationসক্ষমটি ছেড়ে দিন এবং এর পরিবর্তে ব্যবহার করুন Match User:

Match User miro, alice, bob
    PasswordAuthentication no

পরবর্তী Matchকমান্ড বা ইওএফ অবধি বৈধ থাকায় ফাইলটির নীচে রাখুন valid

আপনি ব্যবহার করতে পারেন Match Group <group name>বা অবহেলাও করতে পারেনMatch User !bloggs

আপনি মন্তব্যগুলিতে উল্লেখ করেছেন, আপনি এটিকেও বিপরীত করতে পারেন যাতে পাসওয়ার্ড প্রমাণীকরণটি কনফিগারেশনের মূল অংশে অক্ষম হয়ে যায় এবং Matchএটি ব্যবহারকারীর জন্য কয়েকটি সক্ষম করার জন্য বিবৃতি ব্যবহার করে:

PasswordAuthentication no
.
.
.
Match <lame user>
    PasswordAuthentication yes

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

@ স্কেপেরেন - আপনি ঠিকই বলতে পারেন। আমি আমার উত্তর কিছুটা পরিবর্তন করেছি।
গ্যারেথ TheRed

এই Matchবাক্য গঠনটি দেখতে বেশ ভাল, তবে আমি এটির বিপরীত চেষ্টা করব। (কয়েকটি খোঁড়া) ব্যবহারকারীদের জন্য পাসওয়ার্ড-এড লগইন সক্ষম করুন।
ক্রাভেমির

@ মিরো - এটি একটি ভাল ধারণা, আমি এটি ভবিষ্যতের রেফারেন্সের জন্য আমার উত্তরে যুক্ত করেছি।
গ্যারেথThe রেড

37

আপনি যাই করুন না কেন, passwd -uখালি পাসওয়ার্ড ক্ষেত্র রেখে রাজ্যে অ্যাকাউন্টটি ছেড়ে যাবেন না : যা কোনও পাসওয়ার্ড প্রবেশ না করেই লগইনগুলিকে অনুমতি দেয় (এসএসএইচ ছাড়াই, কারণ এসএসএইচ তা অস্বীকার করে)।

কোনও পাসওয়ার্ড না থাকার জন্য অ্যাকাউন্টটি পরিবর্তন করুন তবে আনলক করুন। পাসওয়ার্ডের ডাটাবেজে পাসওয়ার্ড হ্যাশ কোনও স্ট্রিংয়ের হ্যাশ না হলে কোনও অ্যাকাউন্টের কোনও পাসওয়ার্ড নেই। Ditionতিহ্যগতভাবে, এর জন্য একটি-অক্ষরযুক্ত স্ট্রিং *বা !ব্যবহৃত হয়।

লক করা অ্যাকাউন্টগুলি পাসওয়ার্ড ক্ষেত্রে একটি বিশেষ চিহ্নিতকারী ব্যবহার করে যার ফলে স্ট্রিংটি কোনও স্ট্রিংয়ের হ্যাশ না হয়। চিহ্নিতকারী সিস্টেম-নির্ভর। লিনাক্স-এ, passwdকমান্ড !শুরুর দিকে একটি আবদ্ধ রেখে লক করা পাসওয়ার্ড চিহ্নিত করে এবং ক্ষেত্রটি শুরু হলে ওপেনএসএইচ অ্যাকাউন্টটিকে লক হিসাবে বিবেচনা করে !। অন্যান্য ইউনিক্স রূপগুলি অনুরূপ তবে অভিন্ন পদ্ধতি নয়, তাই আপনার পাসওয়ার্ডের ডাটাবেস যদি ভিন্ন ভিন্ন নেটওয়ার্কের সাথে ভাগ করা থাকে তবে যত্ন নিন।

লিনাক্সে, এসএসএইচ অ্যাক্সেসের অনুমতি দেওয়ার সময় আপনি কোনও অ্যাকাউন্টে পাসওয়ার্ড-ভিত্তিক অ্যাক্সেস অক্ষম করতে পারেন (কিছু অন্যান্য প্রমাণীকরণ পদ্ধতির সাথে, সাধারণত একটি মূল জোড়)

usermod -p '*' username

ব্যবহারকারীর অ্যাকাউন্টটি কোনও পাসওয়ার্ডের সাথে ফেরত দিতে সক্ষম হবে না, কারণ এর জন্য তাদের বৈধ পাসওয়ার্ড প্রবেশ করাতে হবে।

আপনি চাইলে অ্যাকাউন্টের পাসওয়ার্ড আছে কিনা তা বিবেচনা না করে আপনি এসএসএইচের পরিবর্তে পাসওয়ার্ড প্রমাণীকরণ অস্বীকার করতে কনফিগার করতে পারেন। আপনার অ্যাকাউন্টটি লক হওয়ার বিষয়টি বিবেচনা না করার জন্য আপনাকে এসএসএইচের ব্যবস্থা করতে হবে, সুতরাং উদাহরণস্বরূপ লিনাক্সে আপনাকে !পাসওয়ার্ড ক্ষেত্র থেকে অপসারণ করতে হবে (তবে ক্ষেত্রটি খালি করবেন না - *উপরে বর্ণিত হিসাবে এটি সেট করুন) )। এসএসএইচের পাসওয়ার্ড প্রমাণীকরণ অক্ষম করতে, বা (এটি আপনার সিস্টেমে যেটিই হোক) একটি PasswordAuthenticationনির্দেশ যুক্ত করুন । ব্যবহার করা/etc/sshd_config/etc/ssh/sshd_configMatchএই নির্দেশকে কেবল নির্দিষ্ট ব্যবহারকারীর জন্য প্রযোজ্য করে তুলতে ব্লক ; Matchব্লক উপস্থিত হতে হবে

…
Match User username
    PasswordAuthentication no

6
ধন্যবাদ - usermod -p '*' usernameএকটি মোহন কাজ!
হোমমে জাওয়াগস্ট্রা

1
ওপেনএসএইচডি লক ব্যবহারকারীদের (যেমন !প্রিফিক্স সহ পাসওয়ার্ড হ্যাশ ) UsePAM yesসেট করা থাকলে অন্য কিছু প্রমাণীকরণ পদ্ধতিতে লগইন করতে দেয় sshd_config। এটি সম্ভবত বেশিরভাগ বিতরণের (যেমন ফেডোরার সাথে) ডিফল্ট।
maxschlepzig

1
আমার কাছে পিএএম ছাড়াই এমবেডেড সিস্টেম রয়েছে, সুতরাং '*'বনাম '!'পার্থক্যটি খুব দরকারী।
jpkotta

8

আপনার পাসওয়ার্ড সক্ষম বা সেট করার দরকার নেই এবং আপনি যদি ইতিমধ্যে শক্তিশালী কী ব্যবহার করেন তবে আপনার সত্যই হওয়া উচিত নয়। কেবলমাত্র একটি বিদ্যমান অধিবেশন থেকে আপনার অ্যাকাউন্টটি (sudo passwd -l ব্যবহারকারীর নাম) পুনরায় লক করুন এবং আপনার এসএসএইচ কনফিগারেশনটি ঠিক করুন।

এটি হওয়ার কারণ সম্ভবত আপনি ডিফল্ট এসএসএইচ ডেমন সেটিংস সম্পাদন করেছেন (/ etc / ssh / sshd_config)।

এটিকে / etc / ssh / sshd_config এ পরিবর্তন করুন এবং এসএসএইচ পুনরায় চালু করুন:

UsePAM yes

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

এসএসএইচের সাথে ঝামেলা করার সময় দ্রুত পরামর্শ: আপনার এসএসএইচ কনফিগারেশনে যখনই পরিবর্তন আনতে হবে অন্য সেশনটি (অন্য উইন্ডোতে) খোলা রাখুন এবং তারপরে পরীক্ষা করুন যে আপনি এখনও লগ ইন করতে পারেন; আপনি যদি অজান্তেই নিজের অ্যাক্সেস ভঙ্গ করেন, এটি ঠিক করতে আপনার বর্তমান সেশনটি ব্যবহার করুন।

(অস্বীকৃতি: আমি ইউটিরিফিতে কাজ করি যা এসএসএইচ কী পরিচালিত সফ্টওয়্যার সরবরাহ করে))


0

সেন্টোস on এ আমার এই সমস্যাটি ছিল had আমি নিয়মিত ডিবিয়ান-ভিত্তিক লিনাক্স ব্যবহারকারী তাই আমি জল থেকে বাইরে মাছ ছিল was আমি লক্ষ্য করেছি যে কয়েকটি সার্ভারে এটি কাজ করেছিল এবং কেবল একটিতে এটি কার্যকর হয়নি। অডিট.লগটি দরকারী কিছুই বলে নি এবং নিরাপদ.লগও কিছু দেয়নি। আমি দেখতে পেলাম যে প্রকৃত পার্থক্য ছিল ফাইল এবং ডিরেক্টরিগুলির মধ্যে যেগুলি কাজ করেছে এবং যা করেনি তাদের মধ্যে কিছু সুরক্ষা প্রসঙ্গ পার্থক্য। এর সাথে সুরক্ষা পান

sudo ls -laZ <user-home>/.ssh

ডিরেক্টরিটির (আমি sshd_config এ প্রচুর ডিফল্ট ধরে নিচ্ছি)।

আপনার কিছু বৈশিষ্ট্য ssh_home_tএবং user_home_tবৈশিষ্ট্য দেখতে হবে । যদি আপনি না করেন তবে এটি ব্যবহার করুনchcon অনুপস্থিত বৈশিষ্ট্যগুলি যুক্ত করতে কমান্ডটি ।

উদাহরণ স্বরূপ

home="$(getent passwd <user> | cut -d: -f6)"
sudo chcon -R unconfined_u:object_r:ssh_home_t:s0 "$home".ssh
sudo chcon unconfined_u:object_r:user_home_t:s0 "$home"

আমার ক্ষেত্রে, আমার সন্দেহ হ'ল ব্যবহারকারীটি একটি মানহীন উপায়ে তৈরি করা হয়েছিল। তার বাড়ির একটি ডিরেক্টরি ছিল/var/lib

আরও তথ্যে: https://www.linuxquestions.org/questions/linux-security-4/selinux-preventing-ssh-login-with-~-ssh-authorised_keys-4175469538/


-2

অ্যাকাউন্টটি আনলক করুন এবং কিছু এলোমেলো স্ট্রিংয়ে পাসওয়ার্ড পরিবর্তন করুন

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