কীভাবে আপনি ব্যবহারকারীর নাম / পাসওয়ার্ডের পরিবর্তে কী ব্যবহার করে প্রমাণীকরণের জন্য ssh সেটআপ করবেন?


34

কীভাবে আপনি ব্যবহারকারীর নাম / পাসওয়ার্ডের পরিবর্তে কী ব্যবহার করে কোনও ব্যবহারকারীকে প্রমাণীকরণ করতে ssh সেটআপ করবেন?

উত্তর:


27

প্রত্যেক ব্যবহারকারীর জন্য: তারা (তাদের স্থানীয় মেশিনে) উৎপন্ন উচিত তাদের কী জুটি ব্যবহার ssh-keygen -t rsa( rsaসঙ্গে প্রতিস্থাপিত হতে পারে dsaবা rsa1খুব, যদিও সেই সব বিকল্প পরামর্শ দেওয়া হয় না)। তারপরে তাদের সর্বজনীন কী ( id_rsa.pub) এর সামগ্রীগুলি ~/.ssh/authorized_keysলগ ইন হওয়া সার্ভারের মধ্যে রাখা দরকার।


কেবলমাত্র আমি যা যুক্ত করব তা হ'ল ফাইল এবং ডিরেক্টরিতে থাকা অনুমতিগুলি।
ট্রেন্ট

2
Chmod 0700 .ssh chmod 0600 .ssh / अधिकृत_keys
ডেভ চেনি

3
অবশ্যই কীগুলি এইভাবে তৈরি করুন তবে তারপরে "এসএসএস-কপি-আইডি" সম্পর্কিত @ ক্রিস বাঞ্চের পোস্টটি দেখুন। এটি আপনার 'id_rsa.pub' স্থানান্তর করার উপায়।
গ্যারেথ

@ জিয়ারেসু: ধন্যবাদ! আমি সবে নতুন কিছু শিখলাম! :-D
ক্রিস জেস্টার-ইয়ং

23

আমি আসলে ssh-copy-id পছন্দ করি , একটি স্ক্রিপ্ট * নিক্সে ডিফল্টরূপে পাওয়া যায় ( ম্যাক ওএস এক্সে সহজেই যথেষ্ট পরিমাণে রাখা যায়) যা স্বয়ংক্রিয়ভাবে আপনার জন্য এটি করে। ম্যান পৃষ্ঠা থেকে:

ssh-copy-id হ'ল একটি স্ক্রিপ্ট যা দূরবর্তী মেশিনে লগিন করতে ssh ব্যবহার করে (সম্ভবত লগইন পাসওয়ার্ড ব্যবহার করে, সুতরাং পাসওয়ার্ড প্রমাণীকরণ সক্ষম করা উচিত, যদি না আপনি একাধিক পরিচয়ের কিছু চালাক ব্যবহার করেন)

এটি গ্রুপ রিবেটিবিলিটি দূর করতে দূরবর্তী ব্যবহারকারীর বাড়ির, ~ / .ssh, এবং, / .ssh / অনুমোদিত_keys এর অনুমতিগুলিও পরিবর্তন করে (যা অন্যথায় আপনাকে লগ ইন করা থেকে বিরত রাখতে পারে, যদি রিমোট sshd এর কনফিগারেশনে স্ট্রিক্টমডস সেট থাকে)।

যদি -i বিকল্পটি দেওয়া হয় তবে আপনার ssh-এজেন্টে কোনও কী আছে কিনা তা বিবেচনা না করে পরিচয় ফাইলটি (~ / .ssh / সনাক্ত.pub- র ডিফল্ট) ব্যবহৃত হয়।


2
@ ক্রিস গুচ্ছ প্রত্যেকে এখানে দেখুন! :) ssh-copy-id অবশ্যই কারও id_rsa.pub ভাগ করার উপায়
গ্যারেথ

1
শীতল, আমি এই সম্পর্কে কখনই জানতাম না ... ঠিক একই জিনিসটি করার জন্য আমি আমার নিজস্ব স্ক্রিপ্ট লিখেছিলাম: - /
ডেভিড জেড

6

হুম, বুঝে না কেবল একটি কী তৈরি করুন এবং শুরু করুন। :) HOWTO অতিরিক্তভাবে আপনি পাসওয়ার্ডের মাধ্যমে লগইন করতে নিষেধ করতে পারেন। যেমন / ইত্যাদি / এসএসএস / এসএসডি_কনফিগ:

PasswordAuthentication no

2
এবং আপনাকে ইউজপ্যাম নংও সেট করতে হবে (বা সেই অনুযায়ী পিএএম কনফিগার করতে হবে)। এটি আশ্চর্যজনক যে কতটা হাওটিও এই অংশটি মিস করে। এটি করতে ব্যর্থ হওয়ার ফলে আপনি এখনও একটি পাসওয়ার্ড ব্যবহার করে লগইন করতে সক্ষম হবেন।
নাথান

3

এটি করার জন্য মোটামুটি সোজা-এগিয়ে - এখানে একটি সাধারণ ওয়াকথ্রু পাওয়া যাবে

মূল বিষয়গুলি হ'ল:

  • ssh-keygenআপনার মেশিনে চালান । এটি আপনার জন্য সরকারী এবং ব্যক্তিগত কী উত্পন্ন করবে।
  • রিমোট মেশিনে আপনার সর্বজনীন কী (সম্ভবত এতে ~/.ssh/id_rsa.pub) এর সামগ্রীগুলি অনুলিপি করুন এবং আটকান ~/.ssh/authorized_keys

এটি মনে রাখা জরুরী যে এটি আপনার মেশিনে প্রাইভেট কীতে অ্যাক্সেস রয়েছে এমন কাউকে দূরবর্তী মেশিনে একই অ্যাক্সেস দেবে, সুতরাং কী জুড়িটি তৈরি করার সময় আপনি অতিরিক্ত সুরক্ষার জন্য এখানে একটি পাসওয়ার্ড প্রবেশ করানো বেছে নিতে পারেন।


আমি অনুলিপি না করে কাট-পেস্টের প্রস্তাব দিই। একটি অনুমোদিত_কিস ফাইলটিতে একাধিক কী থাকতে পারে এবং আপনি ইতিমধ্যে অন্য কীগুলি ক্লোবার করতে চান না।
ক্রিস জেস্টার-ইয়াং


@ ক্রিস উফ - আমি ওভার-রাইটিংয়ের পরিবর্তে ফাইলটি অনুলিপি করাতে চাইছিলাম! উত্তরটি এখনই স্পষ্ট করতে আপডেট হয়েছে
ConroyP


1

অন্যেরা যা বলেছে তার সংক্ষিপ্তসার হিসাবে, এসএসএইচ কী স্থাপন করা সহজ এবং অমূল্য।

যে মেশিন থেকে আপনি এসএসএইচিং করবেন সেগুলি থেকে আপনার কীটি তৈরি করা দরকার:

claudius:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/dinomite/.ssh/id_rsa): <ENTER>
Enter passphrase (empty for no passphrase): <PASSPHRASE>
Enter same passphrase again: <PASSPHRASE>
Your identification has been saved in /home/dinomite/.ssh/id_rsa.
Your public key has been saved in /home/dinomite/.ssh/id_rsa.pub.
The key fingerprint is:
a3:93:8c:27:15:67:fa:9f:5d:42:3a:bb:9d:db:93:db dinomite@claudius

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

এরপরে, আপনাকে যে হোস্টটি আপনি এসএসএইচ করতে চান তার সবেমাত্র আপনার তৈরি করা কীটি অনুলিপি করতে হবে । বেশিরভাগ লিনাক্স বিতরণে এটি করার জন্য একটি সরঞ্জাম রয়েছে ssh-copy-id:

claudius:~$ ssh-copy-id caligula.dinomite.net
Now try logging into the machine, with "ssh 'caligula.dinomite.net'", and check in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

যদি আপনার ডিস্ট্রিবিউশনে এটি না থাকে, তবে আপনার গন্তব্য হোস্টের চাবিটি অনুলিপি করা উচিত এবং এটি (সম্ভবত বিদ্যমান) .ssh/authorized_keysফাইলে যুক্ত করা উচিত:

claudius:~$ scp .ssh/id_dsa.pub caligula.dinomite.net:
id_dsa.pub                                    100% 1119     1.1KB/s   00:00
claudius:~$ ssh caligula.dinomite.net
Last login: Sat May  9 10:32:30 2009 from claudius.csh.rit.edu
Caligula:~$ cat id_dsa.pub >> .ssh/authorized_keys

অবশেষে, এসএসএইচ কীগুলির সর্বাধিক সুবিধা অর্জন করতে আপনি একটি এসএসএইচ এজেন্ট চালাতে চাইবেন। আপনি যদি কোনও ডেস্কটপ পরিবেশ ব্যবহার করেন (জিনোম, কে। যদি না, আপনি রেসিন ফাইল (আপনার শেল নিম্নলিখিত যোগ করতে পারেন .bashrc, .profileইত্যাদি):

SSHAGENT=/usr/bin/ssh-agent
SSHAGENTARGS="-s"
if [ -z "$SSH_AUTH_SOCK" -a -x "$SSHAGENT" ]; then
    eval `$SSHAGENT $SSHAGENTARGS`
trap "kill $SSH_AGENT_PID" 0
fi

1

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

অ্যাকাউন্টের অধীনে প্রতিটি মেশিনে একটি ~/.sshডিরেক্টরি থাকতে হবে chmod 700যা সংযোগগুলি উত্পন্ন বা গ্রহণ করবে।

(ব্যক্তিগত) কীটি কোনও পাসফ্রেজ ছাড়াই তৈরি করা আবশ্যক, অথবা এজেন্ট শুরু করা যেতে পারে যা ক্লায়েন্টদের ব্যবহারের জন্য পাসফ্রেজ বহনকারী কীটির ডিক্রিপ্ট করা সংস্করণ ধারণ করবে। এজেন্ট দিয়ে শুরু করুন ssh-agent $SHELL। এটি সেই $SHELLঅংশ যা আমাকে খুঁজে পেতে কিছুটা সময় নিয়েছিল। আপনি যদি কোনও এজেন্ট ব্যবহার করতে চান তবে বহুবিধ বিশদ রয়েছে বলে ম্যান পৃষ্ঠাটি দেখুন।

ভুলে যাবেন না যে ডিফল্টরূপে দুর্বল (<2048 বিট ডিএসএ) কীগুলি sshd এর সাম্প্রতিক সংস্করণগুলি দ্বারা গৃহীত হয় না।

সংযোগের সূচনা করতে ক্লায়েন্ট-সাইড মেশিনে নিম্নলিখিতটি করা আবশ্যক ।

  1. আপনার ব্যক্তিগত কীটি যথাযথভাবে ~/.ssh/id_rsaবা ~/.ssh/id_dsaযথাযথভাবে স্থাপন করা উচিত । আপনি অন্য নাম ব্যবহার করতে পারেন, তবে তারপরে প্রাইভেট কীটি স্পষ্টভাবে ইঙ্গিত করার জন্য এটি উত্পন্ন মেশিনে ssh কমান্ডের a -i বিকল্পের মধ্যে অন্তর্ভুক্ত থাকতে হবে।

  2. আপনার ব্যক্তিগত কী হতে হবে chmod 600

  3. আপনার বাড়ির ফোল্ডারটি পরীক্ষা করুন chmod 700

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

  1. আপনার সার্বজনীন কী অবশ্যই ~/.ssh/authorized_keysঅ্যাকাউন্টের নীচে কল করা কোনও ফাইলে রাখতে হবে যা সংযোগগুলি গ্রহণ করবে । আপনি এই অ্যাকাউন্টের মাধ্যমে এখানে সংযুক্ত হওয়ার জন্য অনুমোদিত অন্য কীগুলি রাখতে পারেন। একটি বিশেষত জটিল জিনিস যদি আপনি ভিআই তে থাকেন এবং পুটিটিওয়াইয়ের পেস্ট বাফার থেকে ফাইলটি কীটি আটকান এটি হ'ল: কীটি "ssh-" দিয়ে শুরু হয়। আপনি যদি সন্নিবেশ মোডে না থাকেন তবে প্রথম "s" টি সন্নিবেশ মোডে vi রাখবে এবং বাকি কীটি ঠিক সূক্ষ্ম দেখাবে। তবে আপনি কীটির শুরুতে একটি "এস" মিস করবেন। এটি খুঁজে পেতে আমার বেশ কয়েকদিন লেগেছিল।
  2. আমি পছন্দ করি chmod 600 ~/.ssh/authorized_keys। এটি অবশ্যই কমপক্ষে GW হওয়া উচিত।
  3. এখন, আপনাকে অবশ্যই হোশে আঙ্গুলের ছাপটি ক্যাশে যুক্ত করতে হবে। মেশিন এ তে যান, এবং মেশিন বি তে মেশিনে যান। প্রথমবার, আপনি "আপনি কি হোস্ট কী ক্যাশে যুক্ত করতে চান? ..." এর মতো একটি কোয়েরি পাবেন। আপনি যদি এই লগইনটি ব্যবহার করতে অটোমেশন (যেমন কোনও স্ক্রিপ্ট) পাওয়ার চেষ্টা করছেন, আপনাকে অবশ্যই নিশ্চিত করতে হবে যে অটোমেশনের মাধ্যমে ব্যবহৃত ssh ক্লায়েন্ট এই প্রম্পটটি পাবে না।

0

অন্যরা যেমন বলেছে, আপনার ব্যবহারকারীদের তাদের ক্লায়েন্ট মেশিনে ssh-keygen দিয়ে নিজের জন্য কীপেইসগুলি তৈরি করা উচিত এবং তারা যে মেশিনে লগ ইন করতে চান তাতে public / .ssh / अधिकृत_keys এ তাদের পাবলিক কী যুক্ত করা উচিত।

যদিও আরও বিশদ তথ্যের জন্য, আমি অত্যন্ত সুপারিশ করি এসএসএইচ, দ্য সিকিউর শেল


0

এখানে ভাল পরামর্শ আছে, তাই আমি এটি পুনরাবৃত্তি করব না। একবার আপনি কীগুলির সাহায্যে সাইন ইন করার অনুমতি দেওয়ার জন্য একটি সার্ভার সেট আপ হয়ে গেলে আপনি এই ওলাইনারের সাহায্যে অন্যকেও সেটআপ করতে পারেন:

remote=server1 server2 server3 server4
for r in $remote; do echo connecting to $r; tar czf - ./.ssh/id*.pub ./.ssh/authorized_keys2 ./.ssh/config | ssh $r "tar zxf -; chmod 700 .ssh" ; done

আপনার হোম ডিরেক্টরিতে কেবল সিডি করুন, ভেরিয়েবল রিমোটটিকে এক বা একাধিক সার্ভারের নাম হিসাবে সংজ্ঞায়িত করুন এবং একবারে একগুচ্ছ করুন। এটি যে পাসওয়ার্ডটির জন্য জিজ্ঞাসা করবে তা হ'ল দূরবর্তী সার্ভারের জন্য আপনার এসএস পাসওয়ার্ড। আপনি অবশ্যই সরলিকৃত সংস্করণটি ফর-লুপ ছাড়াই ব্যবহার করতে পারেন:

tar czf - ./.ssh/id*.pub ./.ssh/authorized_keys2 ./.ssh/config | ssh YOUR_SERVER_NAME_HERE "tar ztvf -; chmod 700 .ssh"

স্মরণ করুন: কেবলমাত্র আপনার সর্বজনীন কীগুলিতে অনুলিপি করুন। আপনি চান না যে আপনার ব্যক্তিগত কীগুলি এমন কোনও সার্ভারে বসে আছে যেখানে সুডো সহ যে কেউ সেগুলি অনুলিপি করতে পারে এবং আপনার পাসফ্রেজটিকে জোর করে।

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