SSH কী ব্যবহার করে আপনার দূরবর্তী উবুন্টু সার্ভারে একটি নিরাপদ পাসওয়ার্ড-হীন লগইন সেটআপ করুন
SSH হল একটি নিরাপদ ক্লায়েন্ট-সার্ভার নেটওয়ার্ক প্রোটোকল যা একটি ক্লায়েন্ট কম্পিউটারকে একটি দূরবর্তী সার্ভারের সাথে সংযোগ এবং যোগাযোগ করতে সাহায্য করে। SSH সংযোগ নিশ্চিত করে যে টার্মিনালে টাইপ করা কমান্ডগুলি একটি এনক্রিপ্ট করা চ্যানেলের মাধ্যমে দূরবর্তী সার্ভারে পাঠানো হয়।
রিমোট সার্ভারের সাথে সংযোগ করার জন্য দুই ধরনের প্রমাণীকরণ প্রক্রিয়া ব্যবহার করা হয়, পাসওয়ার্ড-ভিত্তিক প্রমাণীকরণ (ব্রুট-ফোর্স আক্রমণের প্রবণ) এবং SSH কী ভিত্তিক প্রমাণীকরণ (যা খুবই নিরাপদ)।
SSH কী-ভিত্তিক প্রমাণীকরণে, ক্লায়েন্ট কম্পিউটারে একটি কী জোড়া তৈরি করা হয়, যাকে সর্বজনীন কী এবং ব্যক্তিগত কী বলা হয়। এই সর্বজনীন কীটির একটি অনুলিপি দূরবর্তী সার্ভারে উপলব্ধ করা হয়েছে। যখন একটি ক্লায়েন্ট সার্ভারে একটি সংযোগ অনুরোধ পাঠায় তখন সার্ভার একটি র্যান্ডম স্ট্রিং তৈরি করে এবং পাবলিক কী ব্যবহার করে এটি এনক্রিপ্ট করে। এই স্ট্রিংটি শুধুমাত্র ক্লায়েন্ট কম্পিউটারে উপলব্ধ ব্যক্তিগত কী ব্যবহার করে ডিক্রিপ্ট করা যেতে পারে। এই পদ্ধতিটি নিশ্চিত করে যে সার্ভারটি শুধুমাত্র ব্যক্তিগত কী ধারণকারী ক্লায়েন্টদের দ্বারা অ্যাক্সেস করা যেতে পারে।
এই গাইডে, আমরা দেখব কিভাবে উবুন্টু 20.04 LTS সার্ভারে SSH কী সেট আপ করতে হয়।
আপনার কম্পিউটারে বিদ্যমান কোনো SSH কী আছে কিনা দেখুন
আপনার কম্পিউটারে একটি SSH কী-পেয়ার ইতিমধ্যেই বিদ্যমান কিনা তা পরীক্ষা করতে আপনার টার্মিনালে এই কমান্ডটি টাইপ করুন।
ls -l ~/.ssh/id__*.pub
যদি উপরের কমান্ডটি ফিরে আসে অনুরূপ কোন ফাইল বা ডিরেক্টরি নেই
বা কোন মিল পাওয়া যায়নি
, তাহলে এর মানে SSH কী জোড়া বিদ্যমান নেই।
যদি আপনার কাছে একটি বিদ্যমান SSH কী জোড়া থাকে, তাহলে আপনি দুটি দূরবর্তী সার্ভার অ্যাক্সেস করতে একই কী জোড়া ব্যবহার করতে পারেন, অথবা আপনি একটি ভিন্ন নামের একটি ভিন্ন কী জোড়া তৈরি করতে পারেন। চলুন পরবর্তী ধাপে যাওয়া যাক এবং উভয় ক্ষেত্রেই SSH কী তৈরি করা যায়।
একটি ক্লায়েন্ট কম্পিউটারে SSH কী তৈরি করা
আপনার কম্পিউটারে একটি নতুন SSH কী জোড়া তৈরি করতে নীচের দেখানো কমান্ডটি টাইপ করুন।
ssh-keygen
ডিফল্টরূপে, SSH কীগুলি 2048 বিটের। ভাল নিরাপত্তার জন্য, আপনি যদি উচ্চতর বিট সহ SSH কী তৈরি করতে চান, তাহলে নিম্নলিখিত কমান্ডটি ব্যবহার করুন।
ssh-keygen -b 4096
যদি কমান্ডটি সফলভাবে চলে, তাহলে নিম্নলিখিত বার্তাটি আপনার স্ক্রিনে প্রম্পট করবে।
পাবলিক/প্রাইভেট আরএসএ কী পেয়ার তৈরি করা হচ্ছে। ফাইলটি লিখুন যেখানে কী সংরক্ষণ করতে হবে (/home/harshit/.ssh/id_rsa):
এখন যদি আপনার কম্পিউটারে কোন বিদ্যমান SSH কী জোড়া না থাকে তাহলে শুধু টিপুন প্রবেশ করুন
, কিন্তু যদি আপনার কাছে একটি বিদ্যমান SSH কী থাকে তবে নীচে দেখানো হিসাবে একটি ভিন্ন ফাইলের নাম দিয়ে কী সংরক্ষণ করুন।
ফাইলটি লিখুন যেখানে কী সংরক্ষণ করতে হবে (/home/your_name/.ssh/id_rsa): /home/your_name/.ssh/id_rsa_xxx
প্রতিস্থাপন xxx
ফাইলের নামের শেষে একটি উপযুক্ত নাম দিয়ে, নীচে দেখানো হিসাবে এবং টিপুন প্রবেশ করুন
.
ফাইলটি লিখুন যেখানে কী সংরক্ষণ করতে হবে (/home/your_name/.ssh/id_rsa): /home/your_name/.ssh/id_rsa_client_1
পরবর্তী প্রম্পট আপনাকে একটি নির্বিচারে দৈর্ঘ্যের একটি পাসফ্রেজ লিখতে বলবে, এটি আপনার ডিভাইসে দ্বি-স্তরের নিরাপত্তা নিশ্চিত করবে।
পাসফ্রেজ লিখুন (কোন পাসফ্রেজের জন্য খালি): একই পাসফ্রেজ আবার লিখুন:
এই পাসফ্রেজটি প্রবেশ করা নিশ্চিত করবে যে এমনকি যদি একজন ব্যক্তি আপনার ব্যক্তিগত কী অ্যাক্সেস পায়, তবে সে এই পাসফ্রেজ ছাড়া আপনার দূরবর্তী সার্ভার অ্যাক্সেস করতে সক্ষম হবে না।
পুরো প্রক্রিয়াটি সম্পূর্ণ হয়ে গেলে, নিম্নলিখিত বার্তাটি আপনার স্ক্রিনে প্রদর্শিত হবে।
SSH কীগুলি আপনার সিস্টেমে তৈরি করা হয়েছে। এখন রিমোট সার্ভারে পাবলিক কী অনুলিপি করার সময়।
রিমোট উবুন্টু সার্ভারে পাবলিক কী অনুলিপি করা হচ্ছে
রিমোট সার্ভারে পাবলিক কী কপি করার সবচেয়ে সহজ এবং দ্রুততম পদ্ধতি হল ব্যবহার করে ssh-কপি-আইডি
ইউটিলিটি কিন্তু যদি কোনো কারণে এই ইউটিলিটি আপনার মেশিনে উপলব্ধ না হয় তবে আপনি এই বিভাগে দেওয়া অন্যান্য পদ্ধতিগুলিও ব্যবহার করতে পারেন।
ssh-copy-id ইউটিলিটি ব্যবহার করে
দ্য ssh-কপি-আইডি
ইউটিলিটি আপনার উবুন্টু মেশিনে ডিফল্টভাবে উপলব্ধ যা আপনার ডিভাইস থেকে আপনার দূরবর্তী উবুন্টু মেশিনের উপযুক্ত ডিরেক্টরিতে সর্বজনীন কী কপি করে।
সর্বজনীন ssh কী অনুলিপি করতে আপনার টার্মিনালে কমান্ডটি টাইপ করুন, যেমনটি নীচে দেখানো হয়েছে।
ssh-copy-id username@hostname
প্রতিস্থাপন ব্যবহারকারীর নাম
এবং হোস্টনাম
আপনার সার্ভারের ব্যবহারকারীর নাম এবং হোস্ট-নাম সহ উপরের কমান্ডে।
আপনি যদি প্রথমবার আপনার হোস্টের সাথে সংযুক্ত হন তবে নিম্নলিখিত বার্তাটি আপনার টার্মিনালে উপস্থিত হবে, টাইপ করুন হ্যাঁ
এবং টিপুন প্রবেশ করুন
.
হোস্ট' 172.105.XX.XX (172.105.XX.XX)'-এর সত্যতা প্রতিষ্ঠিত করা যাবে না। ECDSA কী ফিঙ্গারপ্রিন্ট হল xx:xx:xx:xx:77:fe:73:xx:xx:55:00:ad:d6:xx:xx:xx। আপনি কি নিশ্চিত আপনি সংযোগ চালিয়ে যেতে চান (হ্যাঁ/না)? হ্যাঁ
এখন ssh-কপি-আইডি
ইউটিলিটি নামের ফাইলটির জন্য স্ক্যান করবে id_rsa.pub
যা সর্বজনীন SSH কী ধারণ করে। একবার স্ক্যানিং প্রক্রিয়া সম্পূর্ণ হলে, এটি আপনাকে আপনার দূরবর্তী সার্ভারের পাসওয়ার্ড লিখতে অনুরোধ করবে, যেমন নীচে দেখানো হয়েছে। পাসওয়ার্ড টাইপ করুন এবং আঘাত করুন প্রবেশ করুন
.
/usr/bin/ssh-copy-id: INFO: নতুন কী(গুলি) দিয়ে লগ ইন করার চেষ্টা করা, ইতিমধ্যে ইনস্টল করা যেকোনও ফিল্টার করার জন্য /usr/bin/ssh-copy-id: INFO: 1 কী(গুলি) ) ইন্সটল করা বাকি আছে -- যদি আপনাকে এখন প্রম্পট করা হয় তাহলে নতুন কী ইনস্টল করতে হবে [email protected] এর পাসওয়ার্ড:
একবার কী যোগ করা হলে, নিম্নলিখিত বার্তাটি আউটপুট হিসাবে আপনার টার্মিনালে প্রদর্শিত হবে।
যোগ করা কী(গুলি) সংখ্যা: 1 এখন মেশিনে লগ ইন করার চেষ্টা করুন, এর সাথে: "ssh '[email protected]'" এবং আপনি যে কী(গুলি) চেয়েছিলেন তা নিশ্চিত করতে পরীক্ষা করুন৷
যদি আপনার ক্লায়েন্ট কম্পিউটারে একাধিক SSH কী থাকে তাহলে আপনার রিমোট কম্পিউটারে উপযুক্ত পাবলিক কী কপি করতে নিচের প্যাটার্নে কমান্ডটি টাইপ করুন।
ssh-copy-id -i id_rsa_xxx.pub username@host
💡 টিপ
টার্মিনালে টাইপ করার সময় ফাইলের নামের শেষে .pub দিতে ভুলবেন না।
পাইপিং পদ্ধতি দ্বারা পাবলিক কী অনুলিপি করা
টার্মিনালে নিম্নলিখিত কমান্ডটি টাইপ করুন if ssh-কপি-আইডি
ইউটিলিটি উপলব্ধ নয়। এই কমান্ডটি কিছুটা দীর্ঘ মনে হতে পারে তবে এটি যথাযথভাবে কাজ করে।
বিড়াল ~/.ssh/id_rsa.pub | ssh remote_username@server_ip_address "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"
প্রতিস্থাপন করুন remote_username
এবং সার্ভার আইপি ঠিকানা
আপনার ব্যবহারকারীর নাম এবং আইপি ঠিকানা সহ।
আপনার কম্পিউটারে একাধিক SSH কী উপলব্ধ থাকলে তা প্রতিস্থাপন করুন id_rsa.pub
আপনার পছন্দের পাবলিক SSH কী ফাইলের সাথে। উদাহরণ স্বরূপ, id_rsa_client_1.pub
.
অনুরোধ করা হলে দূরবর্তী ব্যবহারকারীর পাসওয়ার্ড টাইপ করুন এবং আঘাত করুন প্রবেশ করুন
.
[email protected] এর পাসওয়ার্ড:
আপনি পাসওয়ার্ড টাইপ করার পরে, id_rsa.pub
ফাইল কপি করা হবে অনুমোদিত_কী
রিমোট সার্ভারের ফাইল।
ম্যানুয়ালি পাবলিক কী কপি করা হচ্ছে
পাসওয়ার্ড প্রমাণীকরণের মাধ্যমে আপনার দূরবর্তী সিস্টেমে অ্যাক্সেস না থাকলে এই পদ্ধতিটি ব্যবহার করুন।
খোলা id_rsa.pub
ফাইল ব্যবহার করে বিড়াল
টার্মিনালে কমান্ড। আপনি এটি একটি টেক্সট এডিটর থেকেও খুলতে পারেন, উদ্দেশ্য শুধুমাত্র ফাইলের বিষয়বস্তু অনুলিপি করা।
বিড়াল ~/.ssh/id_rsa.pub
ফাইলের বিষয়বস্তু নিচের মত দেখাবে।
SSH-RSA AAAAB3NzaC1yc2EAAAADAQABAAABAQComjFtuHvHQ67uf3RXg2wgK4EtxBvBvLCtlc4chG + + nJ1cbuJjJ6G8az4xsRN1Q7hrV4dYR81Tk3gRApiMdGcMvInU3Vb7Wq3nh9GS4xnLRH1wvb149wogum2MycIES69Xh0cib + + VvJyZ + + dGO8zRNT64 + + SvfiecRV0llnBGWDRqrIGtMHJkKz7VDKuSyzDit / Ck1NFXxC6Plw3cEMOhWHycm8bnSHSoVpr95ySxxnokX4 / 9iAlvOovxTpMpmDaDvuHKgHxcsOv9Q4sz // 6Hy / 65 + + qqmiuLyuIQXjDiiYTjHTx + + VNi6S0iMLoN6XgDLp0MfG6kLvZ0Z + + csqdvIDQfMuH your_name @ your_PC
এখন, আপনার রিমোট সার্ভারে লগইন করুন এবং নীচে দেখানো কমান্ড ব্যবহার করে অনুলিপি করা সামগ্রী পেস্ট করুন। প্রতিস্থাপন উপরের_স্ট্রিং
কপি করা বিষয়বস্তু সহ।
echo above_string >> ~/.ssh/authorized_keys
একাধিক SSH কী কনফিগার করা হচ্ছে (ঐচ্ছিক)
এই পদক্ষেপটি সেই ব্যক্তিদের জন্য যাদের তাদের ক্লায়েন্ট কম্পিউটারে একাধিক SSH কী সেটআপ রয়েছে৷ আপনার যদি শুধুমাত্র একটি SSH কী সেটআপ থাকে তবে এই বিভাগটি এড়িয়ে যান।
একাধিক SSH কী পরিচালনা করতে, আমরা এখন একটি তৈরি করব কনফিগারেশন
ভিতরে ফাইল .ssh
নীচে দেখানো কমান্ড ব্যবহার করে ডিরেক্টরি।
cd ~/.ssh vim কনফিগারেশন
টাইপ i
কমান্ড মোডে প্রবেশ করতে এবং একাধিক হোস্টের বিশদ বিবরণ টাইপ করুন, যেমনটি নিম্নলিখিত উদাহরণে দেখানো হয়েছে:
হোস্ট remote-ubuntu-server HostName 172.105.XX.XX User root IdentityFile ~/.ssh/id_rsa_client_1 হোস্ট remote-ubuntu-server HostName 172.106.XX.XX User root IdentityFile ~_2rsacl
একইভাবে, অন্যান্য দূরবর্তী সার্ভার এবং তাদের কীগুলির বিবরণ টাইপ করুন। প্রক্রিয়া সম্পন্ন হলে প্রেস করুন প্রস্থান
এবং :wq
সংরক্ষণ এবং প্রস্থান করতে.
এখন ক্লায়েন্ট কম্পিউটারে একক বা একাধিক SSH কী থাকার জন্য পরবর্তী প্রক্রিয়াগুলি একই।
SSH কী ব্যবহার করে আপনার রিমোট সার্ভারে লগইন করুন
আপনার সর্বজনীন কী অনুলিপি করার প্রক্রিয়াটি সম্পূর্ণ হয়ে গেলে, নীচে দেখানো কমান্ডটি টাইপ করে আপনার দূরবর্তী সার্ভারে লগ ইন করুন।
ssh remote_username@server_ip_address
যদি আপনি কী জোড়া তৈরি করার সময় পাসফ্রেজ সরবরাহ করেন তবে আপনাকে এটি প্রবেশ করতে বলা হবে। প্রমাণীকরণ প্রক্রিয়া সম্পূর্ণ হওয়ার পরে একটি নতুন অধিবেশন খোলা হবে।
আপনি এখন সফলভাবে আপনার দূরবর্তী সার্ভারে SSH কী ভিত্তিক প্রমাণীকরণ কনফিগার করেছেন। কিন্তু পাসওয়ার্ড ভিত্তিক প্রমাণীকরণ এখনও আপনার সার্ভারে সক্রিয় রয়েছে, এর মানে হল যে আপনার রিমোটার সার্ভার এখনও ব্রুট-ফোর্স আক্রমণের প্রবণ।
তাই এখন আমরা আমাদের রিমোট সার্ভার থেকে পাসওয়ার্ড-ভিত্তিক লগইন প্রক্রিয়া সম্পূর্ণরূপে নিষ্ক্রিয় করব।
পাসওয়ার্ড-ভিত্তিক লগইন প্রক্রিয়া নিষ্ক্রিয় করুন
আপনি কোনো পরিবর্তন করার আগে, নিশ্চিত করুন যে রুট ব্যবহারকারী বা আপনার দূরবর্তী অ্যাকাউন্টের জন্য কোনো sudo সক্ষম ব্যবহারকারীর SSH কী-ভিত্তিক প্রমাণীকরণ সিস্টেম ব্যবহার করে আপনার সার্ভারে অ্যাক্সেস রয়েছে। এই পদক্ষেপটি পাসওয়ার্ড-ভিত্তিক লগইনটিকে সম্পূর্ণরূপে লক বা নিষ্ক্রিয় করবে তাই এটি অত্যন্ত গুরুত্বপূর্ণ যে কমপক্ষে একজন ব্যবহারকারীর রুট সুবিধা SSH কী-এর মাধ্যমে সার্ভারে অ্যাক্সেস করতে পারে।
আপনার দূরবর্তী উবুন্টু সার্ভারে লগইন করুন এবং নীচে দেখানো কমান্ডটি টাইপ করুন।
sudo vim /etc/ssh/sshd_config
- প্রেস করুন
প্রস্থান
,/
এবং 'পাসওয়ার্ড প্রমাণীকরণ' টাইপ করুন এবং আঘাত করুনপ্রবেশ করা
. - এখন চাপুন
i
এবং 'PasswordAuthentication yes'-এর মান পরিবর্তন করে 'PasswordAuthentication no' করুন। - প্রেস করুন
প্রস্থান
এবং 'ChallengeResponseAuthentication', 'UsePAM' খুঁজে পেতে উপরের প্রক্রিয়াটি পুনরাবৃত্তি করুন এবং তাদের মান পরিবর্তন করুননা
যেমন.
পাসওয়ার্ড প্রমাণীকরণ নেই চ্যালেঞ্জরিসপন্স প্রমাণীকরণ নেই ব্যবহারপ্যাম নম্বর৷
একবার সব মান সেট করা হয় না
, টিপুন প্রস্থান
, টাইপ :wq
এবং আঘাত প্রবেশ করা
.
সমস্ত পরিবর্তন সক্রিয় করতে পুনরায় চালু করুন ssh
নীচের কমান্ড ব্যবহার করে পরিষেবা।
sudo systemctl রিস্টার্ট ssh
এখন আপনার কম্পিউটারে একটি নতুন টার্মিনাল উইন্ডো খুলুন এবং বর্তমান সেশন বন্ধ করার আগে আপনার SSH কী প্রমাণীকরণ সঠিকভাবে কাজ করছে কিনা তা যাচাই করুন।
যাচাইকরণ প্রক্রিয়া সম্পূর্ণ হলে, চলমান সমস্ত সেশন বন্ধ করুন।
আমরা এখন সফলভাবে আমাদের উবুন্টু 20.04 সার্ভারে SSH কী-ভিত্তিক প্রমাণীকরণ কনফিগার করেছি। এখন পাসওয়ার্ড-ভিত্তিক লগইন প্রক্রিয়া ব্যবহার করে কেউ আপনার সার্ভারে লগ ইন করতে পারবে না।