.Ssh ফোল্ডারে ব্যক্তিগত কীতে অনুমতি রয়েছে?


380

আমি আমার .sshফোল্ডারে আমার অনুমতিগুলি পরিবর্তন করেছি এবং এখন যখন আমি আমার ব্যক্তিগত কী ব্যবহার করে এমন কোনও সফ্টওয়্যার ব্যবহার করি, তখন প্রতিবার আমার পাসওয়ার্ডটি টাইপ করতে হয়। id_rsaআমি যখনই কোনও অ্যাপ্লিকেশন ব্যবহার করি তখন প্রতিবার কোনও পাসওয়ার্ড টাইপ না করার জন্য আমার অনুমতিগুলিতে কী থাকতে হবে?

বর্তমানে আমার অনুমতিগুলি এতে সেট করা আছে:

-rw-------@ 1 Jody  staff   114 Nov  4 23:29 config
-rw-------  1 Jody  staff  1743 Oct 21  2009 id_rsa
-rw-------@ 1 Jody  staff   397 Oct 21  2009 id_rsa.pub 
-rw-------@ 1 Jody  staff  3855 Sep 13 22:35 known_hosts

উত্তর:


638

সাধারণত আপনি অনুমতিগুলি চান:

  • .ssh ডিরেক্টরি: 700 (drwx------)
  • সর্বজনীন কী ( .pubফাইল):644 (-rw-r--r--)
  • ব্যক্তিগত কী ( id_rsa):600 (-rw-------)
  • শেষ অবধি আপনার হোম ডিরেক্টরিটি গ্রুপ বা অন্যদের দ্বারা (সর্বাধিক 755 (drwxr-xr-x)) লেখার যোগ্য নয় ।

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


13
আমি অন্য কোথাও খুঁজে পেয়েছি যে যদি অনুমোদিত_কিগুলি ফাইল ব্যবহার করা হয় তবে এটি 640-তে chmod'd করা উচিত, অর্থাৎ -rw-r -----।
অ্যানি দ্য অ্যাজিল

5
আমি ম্যান পৃষ্ঠাগুলিতে এই তথ্যটি কোথায় পাব?
সোনিক

131
আমি এখন প্রায় 30 বার এই পোস্টে ফিরে এসেছি। আমি বিশ্বাস করতে পারি না আমি এটা মনে রাখতে পারি না।
জেরম

7
একমাত্র গুরুত্বপূর্ণ বিষয় হ'ল .এসএস-এ কিছুই অন্য কারও কাছে লেখা যায় না এবং গোপন কীগুলির কোনওটিই অন্য কারও কাছে পঠনযোগ্য নয়।
মার্কাস কুহান

5
@ সেরিন একটি ডিরেক্টরিতে এক্সিকিউট করার অনুমতি দেয় সেই ডিরেক্টরিটির তাত্ক্ষণিক শিশু ফাইল / ডায়ার তালিকাবদ্ধ করার ক্ষমতা মঞ্জুরি দেয়, ফোল্ডারের অভ্যন্তরে থাকা ফাইলগুলি তাদের পিতামহীন ফোল্ডারের এক্সিকিউট বিটকে "উত্তরাধিকারী" করে না।
টমাস

86

আমি চিরদিনের জন্য এটির সাথে লড়াই করে যাচ্ছিলাম এবং শেষ পর্যন্ত কী প্রয়োজন তা ভেবেছিলাম। $USERআপনি সার্ভারে লগ ইন করতে চান এমন SSH ব্যবহারকারীর নাম দিয়ে সর্বত্র প্রতিস্থাপন করুন। আপনি যদি লগইন করার চেষ্টা করে থাকেন তবে আপনার যেমন ইত্যাদি rootব্যবহারের প্রয়োজন হবে /root/.ssh, তার পরিবর্তে /home/root/.sshএটি মূল-অ ব্যবহারকারীদের পক্ষে।

  • সার্ভারে হোম ডিরেক্টরি অন্যদের দ্বারা লিখিতযোগ্য হওয়া উচিত নয়: chmod go-w /home/$USER
  • সার্ভারে এসএসএইচ ফোল্ডারের জন্য 700 টি অনুমতি দরকার: chmod 700 /home/$USER/.ssh
  • অনুমোদিত_কাইজ ফাইলটির জন্য 644 অনুমতি দরকার: chmod 644 /home/$USER/.ssh/authorized_keys
  • নিশ্চিত করুন যে userএটি ফাইল / ফোল্ডারগুলির মালিক এবং না root: chown user:user authorized_keysএবংchown user:user /home/$USER/.ssh
  • উত্পন্ন সর্বজনীন কী (থেকে ssh-keygen) ব্যবহারকারীর authorized_keysফাইলটিতে সার্ভারে রাখুন
  • নিশ্চিত করুন যে ব্যবহারকারীর হোম ডিরেক্টরিটি আপনার প্রত্যাশা অনুযায়ী সেট করা আছে এবং এটিতে .sshআপনি যে ফোল্ডারটি সংশোধন করছেন তা এতে রয়েছে । যদি তা না usermod -d /home/$USER $USERহয় তবে সমস্যাটি সমাধান করতে ব্যবহার করুন
  • অবশেষে, এসএসএস পুনরায় চালু করুন: service ssh restart
  • তারপরে নিশ্চিত হয়ে নিন যে ক্লায়েন্টের কাছে স্থানীয় ব্যবহারকারীর .sshফোল্ডারে এবং লগইনটিতে পাবলিক কী এবং ব্যক্তিগত কী ফাইল রয়েছে :ssh user@host.com

আপনার প্রথম অনুচ্ছেদের বিষয়ে, আমি আমার স্থানীয় লিনাক্স বাক্সে (যেমন abc) দূরবর্তী সার্ভারের (যেমন def@123.456.789) ব্যবহারকারীর চেয়ে পৃথক পাবলিক / প্রাইভেট কীগুলির সাহায্যে শ্যাশ করতে সক্ষম । আমাকে কেবলমাত্র এটি নিশ্চিত করতে হয়েছিল যে স্থানীয় ব্যবহারকারীর স্থানীয় .ssh ফাইলগুলির মালিকানা রয়েছে (যেমন abc:abc, না root:abc) not
মাইকেল

1
অ্যালেক্স, নবাবিদের জন্য সমস্ত পদক্ষেপ এবং কমান্ড দেওয়ার জন্য ধন্যবাদ। আপনার এখানে অন্যতম সহায়ক উত্তর।
নাভি

6
+1 টি। "অনুমোদিত_কাইজ ফাইলটির 644 অনুমতি দরকার" <= এটি অত্যন্ত গুরুত্বপূর্ণ!
লে কোক ভিয়েতনাম

যদি আপনি .ssh ডিরেক্টরি 700০০ মোড দিচ্ছেন, তবে গ্রুপ এবং অন্যদের r-- দেওয়ার কোনও অর্থ নেই , কারণ কেবলমাত্র আপনি "মাধ্যমে যেতে পারেন" ss গৃহীত উত্তরের জন্য একই। ডিফল্ট 755 যথেষ্ট।
ব্যবহারকারী3125367

পেম ফাইলগুলির জন্য 400 আমার অভিজ্ঞতাতে যথেষ্ট।
যেমন AT

37

আপনার হোম ডিরেক্টরি অন্য ব্যবহারকারীদের দ্বারা লিখিত না হয় তাও নিশ্চিত করুন।

chmod g-w,o-w ~


8
এফওয়াইআই, এই কমান্ডটি ধরে নিয়েছে যে আপনি ব্যবহারকারী হিসাবে লগ ইন করেছেন এবং রুট নয়
অ্যালেক্স ডব্লু

6

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

আপনি কোনও ssh এজেন্ট চালানো বিবেচনা করতে পারেন, যা ডিক্রিপ্টড কীগুলি ক্যাশে করতে পারে এবং তাদের প্রয়োজনীয় অ্যাপ্লিকেশনগুলিতে সরবরাহ করবে।


Ssh এজেন্ট সম্পর্কে অতিরিক্ত তথ্যের জন্য ধন্যবাদ। মনে হচ্ছে চিতাবাঘের মধ্যে একটি বিল্ট রয়েছে তাই আমি মনে করি আমি এটি করব। এটি নিয়ে কিছুটা সমস্যা হচ্ছে তবে আমি আরও একটি প্রশ্ন জিজ্ঞাসা করব।

5
অনুমতিগুলি অবমূল্যায়ন করবেন না। তারা অবশ্যই খেলতে আসে।
অ্যালেক্স ডব্লিউ

@ অ্যালেক্সডাব্লু তারা এসএসএসের অন্যান্য দিকগুলির সাথে খেলতে আসে, তবে প্রশ্নটিতে প্রশ্ন করা প্রশ্নটি নয় one
সিডিউইউই

আপনার যদি ব্যক্তিগত কীগুলিতে কোনও পাসওয়ার্ড না থাকে (স্ক্রিপ্টগুলিকে বলা হয় স্বয়ংক্রিয় দূরবর্তী), এটি আপনাকে সাহায্য করবে না it অনুমতি এখানে প্রয়োজনীয়।
নারডোক

"আমাকে প্রতিবার আমার পাসওয়ার্ড টাইপ করতে হবে each আমার আইডি_আর্সা ফাইলটিতে আমার অনুমতি থাকা উচিত কী আমি প্রতিবার অ্যাপ্লিকেশন ব্যবহার করে কোনও পাসওয়ার্ড টাইপ না করে?"
ক্রেগ হিক্স 8:11

4

ফিলিপ সঠিক - আপনার .ssh ডিরেক্টরি সম্বলিত ডিরেক্টরিটি গোষ্ঠী বা অন্য কোনও ব্যক্তির দ্বারা লিখনযোগ্য হবে না। এভাবে chmod go-w ~চালানোর পরে যখন আপনি পাসওয়ার্ডের জন্য জিজ্ঞাসা করা ssh-keygen -t rsa; cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keysহয় তবে ssh-keygen কমান্ডে আপনাকে কোনও পাসফ্রেজ বরাদ্দ করা হয়নি এবং আপনার .ssh ডিরেক্টরিটি আপনার হোম ডিরেক্টরিতে রয়েছে তা ধরে নিলে পরবর্তী লজিক্যাল জিনিসটি এখানে চেষ্টা করা উচিত ।

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