ایک درست، مرحلہ وار رہنمائی جس میں SSH کی جوڑی (key pair) بنانے، اسے اپنے سرور پر نصب کرنے، اور Skyline Cloud VPS پر زیادہ مضبوط، بغیر پاس ورڈ کے سیکیورٹی کے لیے پاس ورڈ لاگ اِن غیر فعال کرنے کا طریقہ بتایا گیا ہے۔
SSH کی کی توثیق کیا ہے
SSH کی کی توثیق اُس پاس ورڈ کی جگہ لے لیتی ہے جو آپ کسی سرور سے جُڑتے وقت ٹائپ کرتے ہیں، اور اس کے بدلے ایک خفیہ نگاری (cryptographic) کی جوڑی استعمال کرتی ہے: ایک نجی کی (private key) جو آپ کے کمپیوٹر پر رہتی ہے اور ایک عوامی کی (public key) جو آپ سرور پر رکھتے ہیں۔ جب آپ جُڑتے ہیں تو یہ دونوں ریاضیاتی طور پر آپس میں ملائی جاتی ہیں، بغیر اس کے کہ نیٹ ورک پر کوئی راز (secret) بھیجا جائے۔ یہ پاس ورڈ کے مقابلے میں زیادہ آسان بھی ہے (کوئی پاس ورڈ ٹائپ نہیں کرنا پڑتا) اور کہیں زیادہ محفوظ بھی، کیونکہ پاس ورڈ کا اندازہ لگایا جا سکتا ہے یا اسے brute-force سے توڑا جا سکتا ہے۔
Skyline Cloud VPS یا کلاؤڈ سرور لانچ کرنے کے بعد سب سے پہلے یہی کام کرنا چاہیے۔ نیچے دیے گئے مراحل Ubuntu 22.04 LTS اور 24.04 LTS کے لیے ہیں، مگر معمولی تبدیلیوں کے ساتھ یہ تقریباً کسی بھی Linux سرور پر لاگو ہوتے ہیں۔
پیشگی تقاضے
- ایک ایسا سرور جس تک آپ پہلے ہی SSH کے ذریعے رسائی حاصل کر سکتے ہوں، اور جس میں ایک ایسا صارف ہو جسے
sudoکے اختیارات حاصل ہوں۔ نئے Skyline Cloud VPS پر یہ عام طور پرrootہوتا ہے یا کوئی ایسا صارف جو آپ نے provisioning کے وقت بنایا تھا۔ - آپ کی اپنی مشین پر ایک ٹرمینل: macOS یا Linux پر Terminal ایپ، یا Windows 10/11 پر PowerShell / Windows Terminal (OpenSSH اس میں پہلے سے شامل ہوتا ہے)۔
مرحلہ 1 — اپنی مقامی مشین پر ایک کی جوڑی بنائیں
یہ کمانڈ اپنے کمپیوٹر پر چلائیں، سرور پر نہیں:
ssh-keygen -t ed25519 -C "you@example.com"
ہم -t ed25519 اس لیے استعمال کرتے ہیں کیونکہ Ed25519 کیز جدید، تیز اور مختصر کی کے باوجود محفوظ ہوتی ہیں۔ -C فلیگ صرف ایک تبصرہ (آپ کا ای میل) شامل کرتا ہے تاکہ آپ بعد میں کی کو پہچان سکیں۔ اگر آپ کو کسی ایسے پرانے سسٹم کی حمایت کرنی ہو جس میں Ed25519 موجود نہ ہو، تو اس کے بجائے ایک مضبوط RSA کی استعمال کریں:
ssh-keygen -t rsa -b 4096 -C "you@example.com"
پہلے سے طے شدہ فائل مقام (~/.ssh/id_ed25519) قبول کرنے کے لیے Enter دبائیں۔ جب passphrase طلب کیا جائے، تو ایک مضبوط passphrase مقرر کریں۔ passphrase آپ کی نجی کی کو ڈسک پر خفیہ (encrypt) کر دیتا ہے، تاکہ چوری شدہ لیپ ٹاپ سرور تک رسائی نہ دے سکے۔ اگر آپ ایجنٹ استعمال کریں (مرحلہ 5)، تو آپ کو فی سیشن صرف ایک بار یہ ٹائپ کرنا پڑے گا۔
اس سے دو فائلیں بنتی ہیں:
| فائل | کردار | کیا اسے شیئر کریں؟ |
|---|---|---|
~/.ssh/id_ed25519 |
نجی کی (Private key) | کبھی نہیں شیئر کریں |
~/.ssh/id_ed25519.pub |
عوامی کی (Public key) | سرورز پر کاپی کرنا محفوظ ہے |
مرحلہ 2 — عوامی کی کو اپنے سرور پر کاپی کریں
سب سے آسان طریقہ ssh-copy-id ہے، جو آپ کی عوامی کی کو سرور کی ~/.ssh/authorized_keys میں شامل کر دیتا ہے اور آپ کے لیے اجازتیں (permissions) بھی درست کر دیتا ہے:
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@your_server_ip
آپ سے آخری بار آپ کا پاس ورڈ پوچھا جائے گا۔ user کی جگہ اپنا سرور یوزر نیم لکھیں (مثلاً root یا ubuntu) اور your_server_ip کی جگہ اپنے VPS کا IP پتہ لکھیں۔
اگر ssh-copy-id دستیاب نہ ہو
Windows پر، یا اگر یہ ٹول موجود نہ ہو، تو کی کو دستی طور پر نصب کریں۔ عوامی کی کو دکھائیں:
cat ~/.ssh/id_ed25519.pub
آؤٹ پٹ کی واحد سطر کو کاپی کریں، اپنے پاس ورڈ کے ساتھ سرور پر لاگ اِن کریں، اور یہ چلائیں:
mkdir -p ~/.ssh && chmod 700 ~/.ssh
echo "ssh-ed25519 AAAA... you@example.com" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
مثال کے بجائے اپنی اپنی کی والی سطر چسپاں (paste) کریں۔ درست اجازتیں اہمیت رکھتی ہیں: اگر فائل یا ~/.ssh ڈائریکٹری بہت زیادہ کھلی (open) ہو تو SSH authorized_keys کو نظر انداز کر دیتا ہے۔
مرحلہ 3 — کی لاگ اِن کو آزمائیں
ایک نیا ٹرمینل کھولیں اور جُڑیں:
ssh user@your_server_ip
اگر آپ نے passphrase مقرر کیا تھا، تو آپ کا سسٹم آپ سے وہ طلب کرے گا (سرور کا پاس ورڈ نہیں)۔ آپ سرور کے کمانڈ پرامپٹ پر پہنچ جانے چاہئیں۔ اگلے مرحلے کے دوران اس سیشن کو کھلا رکھیں، تاکہ کوئی غلطی آپ کو باہر بند (lock out) نہ کر دے۔
مرحلہ 4 — پاس ورڈ کی توثیق غیر فعال کریں
جب کی لاگ اِن کام کرنے لگے، تو پاس ورڈ بند کر دیں تاکہ brute-force کی کوششیں بے کار ہو جائیں۔ سرور پر، SSH ڈیمن کی کنفگ میں ترمیم کریں:
sudo nano /etc/ssh/sshd_config
ان سطروں کو تلاش کریں اور مقرر کریں (کوئی بھی ابتدائی # ہٹا دیں):
PasswordAuthentication no
PubkeyAuthentication yes
Ubuntu 22.04/24.04 پر، drop-in ڈائریکٹری /etc/ssh/sshd_config.d/ کو بھی دیکھ لیں — وہاں موجود کوئی فائل (مثلاً 50-cloud-init.conf) مرکزی فائل کو override کر سکتی ہے۔ یقینی بنائیں کہ کوئی فائل PasswordAuthentication yes مقرر نہ کرتی ہو:
sudo grep -r PasswordAuthentication /etc/ssh/sshd_config /etc/ssh/sshd_config.d/
پھر کنفگ کی توثیق کریں اور سروس کو دوبارہ لوڈ کریں:
sudo sshd -t
sudo systemctl restart ssh
Ubuntu پر سروس کا نام
sshہے (ssh.service)۔ اگرrestart sshبتائے کہ ایسا کوئی یونٹ نہیں ہے، توsudo systemctl restart sshdاستعمال کریں۔
اب ایک اور نیا ٹرمینل کھولیں اور تصدیق کریں کہ آپ اب بھی اپنی کی کے ساتھ لاگ اِن کر سکتے ہیں۔ اپنے اصل سیشن کو صرف اُسی وقت بند کریں جب نیا سیشن کامیاب ہو جائے۔
مرحلہ 5 — ایک SSH ایجنٹ استعمال کریں (اختیاری مگر تجویز کردہ)
تاکہ آپ کو ہر کنکشن پر passphrase دوبارہ ٹائپ نہ کرنا پڑے، فی سیشن ایک بار کی کو ایجنٹ میں لوڈ کریں:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
macOS پر، اسے keychain میں محفوظ کریں تاکہ یہ ری بوٹس کے بعد بھی برقرار رہے:
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
مرحلہ 6 — ایک منظم SSH config (اختیاری)
اپنی مقامی مشین پر ~/.ssh/config میں ایک اندراج شامل کریں تاکہ آپ ایک مختصر عرفی نام (alias) سے جُڑ سکیں:
Host skyline-vps
HostName your_server_ip
User ubuntu
IdentityFile ~/.ssh/id_ed25519
اب آپ کو صرف ssh skyline-vps لکھنے کی ضرورت ہے۔
مسائل کا حل (Troubleshooting)
- مرحلہ 2 کے بعد بھی پاس ورڈ مانگا جا رہا ہے۔ اجازتیں غلط ہیں۔ سرور پر
chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keysچلائیں، اور یہ یقینی بنائیں کہ فائل آپ کے صارف کی ملکیت میں ہے۔ Permission denied (publickey)۔ سرور آپ کی کی پیش نہیں کر رہا، یا آپ نے اسے غلط صارف کی ہوم ڈائریکٹری میں کاپی کر دیا ہے۔ یہ دیکھنے کے لیے کہ SSH کیا آزماتا ہے،-vشامل کریں:ssh -v user@your_server_ip۔- پاس ورڈ غیر فعال کرنے کے بعد باہر بند ہو گئے۔ اپنے فراہم کنندہ کے کنسول (آپ کے کنٹرول پینل میں ویب پر مبنی VNC/serial کنسول) کا استعمال کرتے ہوئے لاگ اِن کریں اور عارضی طور پر
PasswordAuthenticationکو دوبارہ فعال کریں۔
اسے ایک منظم، اِن-کنگڈم VPS پر چلائیں
SSH کیز کنکشن کی حفاظت کرتی ہیں، مگر خود سرور کو اب بھی patching، بیک اپس اور نگرانی کی ضرورت ہوتی ہے۔ Skyline Cloud VPS یا کلاؤڈ سرور پر آپ کو ہارڈ ویئر سعودی عرب کے اندر میزبان ملتا ہے جو PDPL، NCA اور SDAIA کے ڈیٹا کی رہائش (data-residency) کے تقاضوں کے لیے موزوں ہے، مقامی عربی سپورٹ، اور ایسے منظم اختیارات جو OS کی سختی (hardening) اور آپ کے لیے کلاؤڈ بیک اپس سنبھالتے ہیں۔ اسے اسی اِن-کنگڈم پلیٹ فارم پر کاروباری ای میل ہوسٹنگ کے ساتھ جوڑیں اور آپ کا پورا اسٹیک compliant رہے گا۔
چند منٹوں میں ایک محفوظ سرور تعینات کرنے کے لیے تیار ہیں؟ اپنا Skyline Cloud اکاؤنٹ بنائیں اور آج ہی ایک VPS لانچ کریں۔
Comments
0 total · 0 threads