ssh আর পাবলিক কী প্রমাণীকরণের অনুমতি দেয় না


22

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

আমি ইতিমধ্যে যাচাই করেছি যে কীটি ~ / .ssh / ਅਧਿਕਾਰিত_কিজে তালিকাভুক্ত রয়েছে। আমি কীভাবে এটি ঠিক করব এবং আমি কী পরীক্ষা করব?


2
প্রথমে পরীক্ষা করে দেখুন যে তিনটিই ~, ~/.sshএবং ~/.ssh/authorized_keysকেবলমাত্র আপনার দ্বারা লিখিত (বিশেষত কোনও গ্রুপ লেখার অনুমতি নেই)। /var/log/auth.logআপনার লগইন প্রচেষ্টা করার সময় তৈরি লগ এন্ট্রি জন্য সন্ধান করুন । এগুলি আপনার প্রশ্নের অনুলিপি করুন (যদি আপনি চান তবে গোপনীয়তার জন্য নামগুলি সম্পাদনা করুন)। এছাড়াও সমস্যাটি পুরোপুরি সার্ভারের দিকে রয়েছে কিনা তা যাচাই করুন: প্রাইভেট কীটি লিনাক্স মেশিনে অনুলিপি করুন (আপনাকে পুটটির প্রাইভেট কী ফাইলটি ওপেনএসএইচ ফরমেটে রূপান্তর করতে হবে) এবং দেখুন কিনা ssh localhostকাজ করে works
গিলস 'অশুভ হওয়া বন্ধ করুন'

আমার হোম ডিরেক্টরি কোনও কারণে লেখার যোগ্য ছিল। এটা এটি স্থির। এটি একটি উত্তর হিসাবে রাখুন যাতে আমি এটি গ্রহণ করতে পারি।
অ্যান্ড্রু রেড

উত্তর:


28

যদি সর্বজনীন কী প্রমাণীকরণ কাজ করে না: সার্ভার সাইডে, আপনার হোম ডিরেক্টরি ( ~), ~/.sshডিরেক্টরি এবং ~/.ssh/authorized_keysফাইলটি কেবলমাত্র তার মালিকের দ্বারা লিখিতযোগ্য । বিশেষত, তাদের কোনওটিই গ্রুপ দ্বারা লিখিত হতে হবে না (এমনকি ব্যবহারকারী গ্রুপে একা থাকলেও)। chmod 755বা chmod 700ঠিক আছে, chmod 770না।

কিছু ভুল হলে কী পরীক্ষা করতে হবে:

  • ssh -vvvপ্রচুর ডিবাগিং আউটপুট দেখতে চালান । আপনি কেন ssh এর সাথে সংযোগ স্থাপন করতে পারবেন না তা জানতে কোনও প্রশ্ন পোস্ট করলে, এই আউটপুটটি অন্তর্ভুক্ত করুন (আপনি হোস্ট এবং ব্যবহারকারীর নাম বেনামে রাখতে চাইতে পারেন)।
  • আপনি যদি পারেন তবে সার্ভারের লগ ইন চেক করুন /var/log/auth.log
  • যদি সর্বজনীন কী প্রমাণীকরণ কাজ না করে থাকে তবে আবার অনুমতিগুলি পরীক্ষা করুন, বিশেষত গ্রুপ বিট (উপরে দেখুন)।


1
চমৎকার উত্তর! আমি আমার
হোমডিরটি

আপনি যদি ssh (বা sshd) এর সাম্প্রতিক সংস্করণটি চালাচ্ছেন তবে সুরক্ষা সমস্যার কারণে ডিএসএ কীগুলি আর ডিফল্টরূপে সমর্থিত নয়। একমাত্র আসল ফিক্স হ'ল আরএসএ বা আরও ভাল কীগুলিতে আপগ্রেড করা।
মিক্কো রেন্টালাইনেন

আমি আমার বাড়ির ফোল্ডারের অনুমতিগুলি পরিবর্তন করেছি এবং কী? আমি এসএসএইচ লক আউট ছিল! আমি ssh কীগুলি পরিবর্তন করেছি, না, সার্ভারটি এখনও সংযোগ প্রত্যাখ্যান করেছে! আমি সমাধান খুঁজতে গিয়ে পাগল হয়েছি এবং আপনার বাড়ির ফোল্ডারে chmod 700 এর উত্তর দিয়ে , ssh কাজ শুরু করেছে !!!!!!! ধন্যবাদ! সমাধানটি খুঁজতে গিয়ে আমার টার্মিনাল সংযোগটি যদি বাদ পড়ে তবে আমি সার্ভার থেকে সম্পূর্ণ লক হয়ে যাব। তাই আপনার হোম ফোল্ডারের অনুমতি নিয়ে না খেলুন সাবধান! (আমি সবেমাত্র আমার হোম ফোল্ডারের অনুমতিগুলি পরিবর্তন করেছি,। এসএসএস ফোল্ডারটি নয় তবে এখনও এসএসএইচ থেকে লক আউট করেছি)
তারিক

9

আমি একই জিনিসটিতে দৌড়ে এসে শেষ পর্যন্ত বুঝতে পারলাম যে এটি আমার বাড়ির ডিরেক্টরিটি এনক্রিপ্ট করা হয়েছিল। আপনি লগ ইন না করা পর্যন্ত এসএসএইচ অনুমোদিত_কিগুলি ফাইলটি পড়তে পারে না, তাই মূলত এটি আপনাকে প্রথমে পাসওয়ার্ড প্রমাণীকরণে বাধ্য করে। নিম্নলিখিত লিঙ্কটিতে এনক্রিপ্ট করা হোম ডিরেক্টরি সম্পর্কে বিভাগটি দেখুন:

https://help.ubuntu.com/community/SSH/OpenSSH/Keys#Encrypted_Home_Directory


5

আপনি যদি ডিরেক্টরিতে অনুমতিগুলি পরীক্ষা করেন, এবং সেখানে একটি "" রয়েছে। ঠিক তাদের পরে, তারপরে আপনার সেলিনাক্স সক্ষম থাকতে পারে যা ডাব্লু / কী এক্সচেঞ্জকে গোলমাল করবে এবং ম্যানুয়াল পাসওয়ার্ড সনাক্তকরণে ডিফল্ট হবে।

: আপনি এখানে নির্দেশাবলী অনুসরণ করে সমস্যা নিবারণ করার জন্য SELinux- র নিষ্ক্রিয় করতে পারেন http://www.centos.org/docs/5/html/5.1/Deployment_Guide/sec-sel-enable-disable-enforcement.html , বা শুধু সম্পাদনা / ইত্যাদি / সেলিনাক্স / কনফিগারেশন ফাইল এবং এটিকে "বলপূর্বক" থেকে "অক্ষম" করে দিন।

আশাকরি এটা সাহায্য করবে.


আমি সেলিনাক্স সক্ষম করেছিলাম, তবে এটি অক্ষম করা এটি ঠিক করে নি বলে মনে হচ্ছে। আমার জন্য কৌতুকটি কী ছিল chmod 600 ~/.ssh/authorized_keys- ফাইলটি গ্রুপ-লিখনযোগ্য ছিল। ( py Microsoft.co.uk/blog/2013/01/12/… এর মাধ্যমে )
ডেভিড

এই আমাকে সাহায্য! ধন্যবাদ!
907

SELinux এর সাথে সঠিক SELinux প্রসঙ্গটি সেট করে আপনার এসএসএইচ প্রমাণীকরণ পেতে সক্ষম হওয়া উচিত। আপনার হোম ডিরেক্টরিতে সিস্টেম-কনফিগার কনটেক্সটগুলি পুনরুদ্ধার করা ( restorecon ~ -R) একটি ভাল সূচনা পয়েন্ট।
জোশ কেলি

4

আমি নিশ্চিত করব যে আপনার / etc / ssh / sshd_config এ আপনার সেটিংস সঠিক আছে।

শুধুমাত্র পিকেআই ব্যবহার বাধ্যতামূলক করতে এবং পাসওয়ার্ডগুলি অস্বীকার করার জন্য লাইনটি সন্ধান করুন

#PasswordAuthentication yes 

আপনার ফাইলে এটি এলোমেলো করে সেট করুন

PasswordAuthenticate no

আমি সেটিংসের ভারসাম্যটি পড়ে সেগুলি বোঝার জন্য তা নিশ্চিত করেছিলাম read বিশেষত, নিশ্চিত করার চেষ্টা করুন যে আপনি আরএসএ কীগুলি ব্যবহার করেছেন যেহেতু ডিএসএ সমঝোতার বিষয়টি জানেন।


11
আপনি কীভাবে পাসওয়ার্ড প্রমাণীকরণ অক্ষম করবেন তা ব্যাখ্যা করছেন। এটি পাবলিক কী প্রমাণীকরণের কাজ করতে সহায়তা করবে না (সর্বজনীন কীটি প্রথমে চেষ্টা করা হয়েছে)। অ্যান্ড্রু: আপনি পাবলিক কী প্রমাণীকরণের কাজ নিশ্চিত না হওয়া অবধি পাসওয়ার্ড প্রমাণীকরণ অক্ষম করবেন না!
গিলস 'অশুভ হওয়া বন্ধ করুন'

2

সমস্যার একটি সম্ভাব্য কারণ হ'ল আপনার ডিএসএ কী রয়েছে তবে এখন এসএসএইচ (স্পষ্টতই) আরএসএ কীগুলির প্রয়োজনের চেয়ে ডিফল্ট। 16.04 এ আপগ্রেড করার সময় আমি সমস্যা পেয়েছি। আপনি এখানে আরও দেখতে পারেন তবে সংক্ষিপ্ত উত্তরটি নিম্নলিখিতটি যুক্ত করে ~/.ssh/config:

PubkeyAcceptedKeyTypes ssh-dss

1

আমি / etc / ssh / sshd_config "পাসওয়ার্ড প্রমাণীকরণ হ্যাঁ" মন্তব্য না করে এই সমস্যাটি সমাধান করেছি।


1

দুটি ভিন্ন মেশিনের মধ্যে সমস্যার সমাধানের প্রয়োজনের কারণে ~/.ssh, ক্লায়েন্টের পাশে আমার দুটি ব্যক্তিগত কী ছিল ।

~/.ssh/identityআমার করা উচিত হিসাবে প্রতিটি সার্ভার হোস্টকে সংশ্লিষ্ট প্রাইভেট কী দিয়ে কনফিগার করার পরিবর্তে , আমার কাছে সমস্ত হোস্টের জন্য মাধ্যমিক (এবং এই ক্ষেত্রে ভুল) কীটি কনফিগার করা ছিল:

Host *
IdentityFile ~/.ssh/identity_b

সংশোধন ~/.ssh/identityকরার ফলে সমস্যার সমাধান হয়েছে:

Host a
IdentityFile ~/.ssh/identity_a
Host b
IdentityFile ~/.ssh/identity_b

0

আমার ঠিক একই সমস্যা ছিল তবে অনুমতিগুলি পরিবর্তন করা chmodসাহায্য করছিল না কারণ এটি প্রমাণিত হয়েছে যে আমার কাছে ~/.ssh/authorized_keysফাইলটির মালিকানা নেই । আপনি .sshডিরেক্টরিটির মালিকানা এটির সাথে পরিবর্তন করতে পারেন :

sudo chown -R "$USER" ~/.ssh

-1

একরকম এটি আমার পক্ষে কাজ করেছে:

রুট @ কায়সার: ~ # ভিম / ইত্যাদি / এসএসএস / এসএসডি_কনফিগ

এই লাইনটি হ্যাঁ থেকে 28 নম্বর স্ট্রাইকডমডে পরিবর্তন করুন

আবার চেষ্টা কর

sysadmin @ suselinux1: ~> কন সিসাদমিন কায়সার উবুন্টু 12.04.1 এলটিএসে আপনাকে স্বাগতম (জিএনইউ / লিনাক্স 3.2.0-25-জেনেরিক আই 686)

শেষ লগইন: শুক্র নভেম্বর 9 15:40:11 2012 থেকে 10.1.3.25 সিসাদমিন @ কায়সার: ~ $ তারিখ ভিও নভেম্বর 9 17:53:11 সিএসটি 2012 সায়সডমিন @ কায়সার: ~ $


3
এটি কী করে এবং এটি কেন কাজ করে তা না জেনে কিছু করা গ্রহণযোগ্য হতে পারে তবে এটির প্রস্তাব দেওয়া খারাপ, এবং যদি এটি কোনও সুরক্ষা ব্যবস্থার সাথে সম্পর্কিত হয় তবে তা ভাল, খারাপ হওয়া উচিত।
মহেশ

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