Ubuntu 20.04 پر SSH کیز کیسے شامل کریں۔

SSH کیز کا استعمال کرتے ہوئے اپنے ریموٹ Ubuntu سرور پر ایک محفوظ پاس ورڈ سے کم لاگ ان سیٹ اپ کریں۔

SSH ایک محفوظ کلائنٹ-سرور نیٹ ورک پروٹوکول ہے جو کلائنٹ کمپیوٹر کو ریموٹ سرور سے جڑنے اور بات چیت کرنے میں مدد کرتا ہے۔ SSH کنکشن اس بات کو یقینی بناتا ہے کہ ٹرمینل میں ٹائپ کیے گئے کمانڈز ایک انکرپٹڈ چینل کے ذریعے ریموٹ سرور کو بھیجے جائیں۔

ریموٹ سرور سے جڑنے کے لیے دو قسم کے توثیق کے طریقہ کار استعمال کیے جاتے ہیں، پاس ورڈ پر مبنی توثیق (بروٹ فورس حملوں کا خطرہ) اور SSH کیز پر مبنی تصدیق (جو بہت محفوظ ہے)۔

SSH کلید پر مبنی تصدیق میں، کلائنٹ کمپیوٹر پر ایک کلیدی جوڑا تیار ہوتا ہے، جسے عوامی کلید اور نجی کلید کہا جاتا ہے۔ اس عوامی کلید کی ایک کاپی ریموٹ سرور پر دستیاب کرائی گئی ہے۔ جب کوئی کلائنٹ سرور کو کنکشن کی درخواست بھیجتا ہے تو سرور ایک بے ترتیب تار تیار کرتا ہے اور عوامی کلید کا استعمال کرتے ہوئے اسے خفیہ کرتا ہے۔ اس سٹرنگ کو صرف کلائنٹ کمپیوٹر پر دستیاب نجی کلید کا استعمال کرتے ہوئے ڈکرپٹ کیا جا سکتا ہے۔ یہ طریقہ اس بات کو یقینی بناتا ہے کہ سرور تک رسائی صرف ان کلائنٹس کے ذریعہ کی جاسکتی ہے جن میں نجی کلید موجود ہو۔

اس گائیڈ میں، ہم دیکھیں گے کہ Ubuntu 20.04 LTS سرور پر SSH کیز کو کیسے ترتیب دیا جائے۔

دیکھیں کہ آیا آپ کے کمپیوٹر پر کوئی موجودہ SSH کلید موجود ہے۔

یہ چیک کرنے کے لیے کہ آیا آپ کے کمپیوٹر پر SSH Keypair پہلے سے موجود ہے اپنے ٹرمینل میں یہ کمانڈ ٹائپ کریں۔

ls -l ~/.ssh/id__*.pub

اگر اوپر کی کمانڈ واپس آجاتی ہے۔ ایسی کوئی فائل یا ڈائریکٹری نہیں۔ یا کوئی میچ نہیں ملاپھر اس کا مطلب ہے کہ SSH کلیدی جوڑا موجود نہیں ہے۔

اگر آپ کے پاس موجودہ SSH کلیدی جوڑا ہے، تو آپ یا تو ایک ہی کلیدی جوڑی کو دو ریموٹ سرورز تک رسائی کے لیے استعمال کر سکتے ہیں، یا آپ ایک مختلف کلیدی جوڑا بھی بنا سکتے ہیں جس کا نام مختلف ہو۔ آئیے اگلے مرحلے پر چلتے ہیں اور دیکھتے ہیں کہ دونوں صورتوں کے لیے SSH کیز کیسے تیار کی جائیں۔

کلائنٹ کمپیوٹر پر SSH کیز بنانا

اپنے کمپیوٹر پر ایک نیا SSH کلید جوڑا بنانے کے لیے نیچے دکھائے گئے کمانڈ کو ٹائپ کریں۔

ssh-keygen

پہلے سے طے شدہ طور پر، SSH کیز 2048 بٹ کی ہوتی ہیں۔ بہتر سیکیورٹی کے لیے، اگر آپ اعلی بٹس کے ساتھ SSH کیز بنانا چاہتے ہیں، تو درج ذیل کمانڈ کا استعمال کریں۔

ssh-keygen -b 4096

اگر کمانڈ کامیابی سے چلتا ہے، تو درج ذیل پیغام آپ کی سکرین پر آ جائے گا۔

عوامی/نجی rsa کلیدی جوڑی پیدا کرنا۔ فائل درج کریں جس میں کلید کو محفوظ کرنا ہے (/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-keygen -b 4096 SSH کلیدی جنریشن مکمل ہونے کے بعد، آپ کی سکرین پر درج ذیل پیغام ظاہر ہوتا ہے۔

ایس ایس ایچ کیز آپ کے سسٹم پر تیار کی گئی ہیں۔ اب وقت آگیا ہے کہ ریموٹ سرور پر عوامی کلید کاپی کریں۔

عوامی کلید کو ریموٹ اوبنٹو سرور میں کاپی کرنا

عوامی کلید کو ریموٹ سرور پر کاپی کرنے کا سب سے آسان اور تیز ترین طریقہ استعمال کرنا ہے۔ ssh-copy-id افادیت لیکن اگر یہ افادیت کسی وجہ سے آپ کی مشین پر دستیاب نہیں ہے تو آپ اس سیکشن میں فراہم کردہ دیگر طریقے بھی استعمال کر سکتے ہیں۔

ssh-copy-id یوٹیلیٹی کا استعمال

دی ssh-copy-id یوٹیلیٹی آپ کی اوبنٹو مشین پر بطور ڈیفالٹ دستیاب ہے جو آپ کے آلے سے آپ کی ریموٹ اوبنٹو مشین کی مناسب ڈائریکٹری میں عوامی کلید کو کاپی کرتی ہے۔

عوامی 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-copy-id یوٹیلیٹی نام کے ساتھ فائل کو اسکین کرے گی۔ 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 لگانا نہ بھولیں۔

پائپنگ کے طریقہ سے عوامی کلید کو کاپی کرنا

ٹرمینل میں درج ذیل کمانڈ ٹائپ کریں اگر ssh-copy-id افادیت دستیاب نہیں ہے. یہ کمانڈ تھوڑی لمبی لگ سکتی ہے لیکن یہ مناسب طریقے سے کام کرتی ہے۔

بلی ~/.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 اور سرور_آئی پی_ایڈریس اپنے صارف نام اور IP پتے کے ساتھ۔

اگر آپ کے کمپیوٹر پر ایک سے زیادہ 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 Keys سیٹ اپ ہیں۔ اگر آپ کے پاس صرف ایک SSH کلیدی سیٹ اپ ہے تو اس سیکشن کو چھوڑ دیں۔

متعدد SSH کلیدوں کو منظم کرنے کے لیے، ہم اب ایک بنائیں گے۔ تشکیل کے اندر فائل .ssh نیچے دی گئی کمانڈ کا استعمال کرتے ہوئے ڈائریکٹری۔

cd ~/.ssh vim config

قسم میں کمانڈ موڈ میں داخل ہونے اور متعدد میزبانوں کی تفصیلات ٹائپ کرنے کے لیے، جیسا کہ درج ذیل مثال میں دکھایا گیا ہے:

میزبان 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 ~_2_rsacl ~_/.

اسی طرح دوسرے ریموٹ سرورز اور ان کی کیز کی تفصیلات ٹائپ کریں۔ عمل مکمل ہونے کے بعد دبائیں Esc اور :wq بچانے اور باہر نکلنے کے لیے۔

اب اس کے بعد کے عمل کلائنٹ کمپیوٹر پر سنگل یا ایک سے زیادہ SSH کیز دونوں کے لیے یکساں ہیں۔

SSH کیز کا استعمال کرتے ہوئے اپنے ریموٹ سرور میں لاگ ان کریں۔

ایک بار جب آپ کی عوامی کلید کو کاپی کرنے کا عمل مکمل ہو جائے تو نیچے دی گئی کمانڈ کو ٹائپ کرکے اپنے ریموٹ سرور میں لاگ ان کریں۔

ssh remote_username@server_ip_address

اگر آپ نے کلیدی جوڑا تیار کرتے وقت پاس فریز فراہم کیا ہے تو آپ کو اسے داخل کرنے کے لیے کہا جائے گا۔ تصدیق کا عمل مکمل ہونے کے بعد ایک نیا سیشن کھل جائے گا۔

اب آپ نے اپنے ریموٹ سرور پر ایس ایس ایچ کیز پر مبنی توثیق کو کامیابی سے کنفیگر کر لیا ہے۔ لیکن پاس ورڈ کی بنیاد پر توثیق آپ کے سرور پر اب بھی فعال ہے، اس کا مطلب ہے کہ آپ کا ریموٹ سرور اب بھی بروٹ فورس حملوں کا شکار ہے۔

لہذا اب ہم اپنے ریموٹ سرور سے پاس ورڈ پر مبنی لاگ ان میکانزم کو مکمل طور پر غیر فعال کر دیں گے۔

پاس ورڈ پر مبنی لاگ ان میکانزم کو غیر فعال کریں۔

اس سے پہلے کہ آپ کوئی تبدیلی کریں، اس بات کو یقینی بنائیں کہ آپ کے ریموٹ اکاؤنٹ کے لیے روٹ صارف یا کسی بھی sudo فعال صارف کو SSH کلید پر مبنی تصدیقی نظام کا استعمال کرتے ہوئے آپ کے سرور تک رسائی حاصل ہے۔ یہ قدم پاس ورڈ پر مبنی لاگ ان کو مکمل طور پر لاک یا غیر فعال کر دے گا اس لیے یہ بہت ضروری ہے کہ کم از کم ایک صارف کے روٹ مراعات کو SSH کلید کے ذریعے سرور تک رسائی حاصل ہو۔

اپنے ریموٹ Ubuntu سرور میں لاگ ان کریں اور نیچے دکھائی گئی کمانڈ ٹائپ کریں۔

sudo vim /etc/ssh/sshd_config
  • دبائیں Esc, / اور 'PasswordAuthentication' ٹائپ کریں اور دبائیں۔ داخل کریں.
  • اب دبائیں میں اور 'Password Authentication yes' کی قدر کو 'Password Authentication no' میں تبدیل کریں۔
  • دبائیں Esc اور 'ChallengeResponseAuthentication'، 'UsePAM' تلاش کرنے کے لیے مذکورہ بالا عمل کو دہرائیں، اور ان کی اقدار کو تبدیل کریں۔ نہیں اس کے ساتھ ساتھ.
پاس ورڈ کی توثیق کوئی چیلنج رسپانس توثیق نہیں کوئی UsePAM نمبر

ایک بار جب تمام قدریں سیٹ ہوجاتی ہیں۔ نہیں، دبائیں Esc، قسم :wq اور مارو داخل کریں.

تمام تبدیلیوں کو چالو کرنے کے لیے دوبارہ شروع کریں۔ ssh درج ذیل کمانڈ کا استعمال کرتے ہوئے خدمت۔

sudo systemctl دوبارہ شروع کریں ssh

اب اپنے کمپیوٹر پر ایک نئی ٹرمینل ونڈو کھولیں اور موجودہ سیشن کو بند کرنے سے پہلے تصدیق کریں کہ آپ کی SSH کلید کی توثیق ٹھیک سے کام کر رہی ہے۔

تصدیق کا عمل مکمل ہونے کے بعد، چل رہے تمام سیشنز کو بند کر دیں۔

اب ہم نے اپنے Ubuntu 20.04 سرور پر SSH کلید پر مبنی توثیق کو کامیابی سے کنفیگر کر لیا ہے۔ اب کوئی بھی پاس ورڈ پر مبنی لاگ ان میکانزم کا استعمال کرتے ہوئے آپ کے سرور میں لاگ ان نہیں ہو سکتا۔