لانچر مصنوعات Bitnami دستاویزاتimaxe CLI بلاگ رابطہ
imaxe ssh رسائی v1.0.0

SSH رسائی، قابو میں

اپنے سرور کی ریموٹ رسائی کو ہاتھ سے فائلیں ترمیم کیے بغیر منظم کریں: مجاز کیز، ہوسٹ کیز، فعال سیشنز اور sshd سختی، سب کچھ دوبارہ لوڈ کرنے سے پہلے کنفیگریشن کی جانچ کے ساتھ۔

$ imaxe ssh status
ورژن
v1.0.0
ذیلی کمانڈز
10
کنفیگ
/etc/imaxe/ssh.yml
root درکار ہے
ہاں
زیرِ انتظام صارف
ubuntu

یہ ماڈیول کیا کرتا ہے #

SSH آپ کے سرور میں داخلے کا راستہ ہے: وہ خفیہ کردہ چینل جس کے ذریعے آپ اسے چلانے کے لیے جڑتے ہیں۔ یہ یقینی بنانا کہ وہ دروازہ ٹھیک سے لگا ہو —درست کیز کے ساتھ اور بغیر کسی اضافی تالے کے— ہی ایک محفوظ سرور کو ایک بے نقاب سرور سے الگ کرتا ہے۔

ssh ماڈیول اُس ریموٹ رسائی کے کاموں کو ایک ہی کمانڈ میں جمع کر دیتا ہے: یہ صارف کی مجاز کیز کو منظم کرتا ہے (شامل کریں، فہرست بنائیں، ہٹائیں)، اُن ہوسٹ کیز کو کنٹرول کرتا ہے جن کے ذریعے سرور کلائنٹس کے سامنے اپنی شناخت کراتا ہے، فعال سیشنز دکھاتا ہے، اور آپ کی کنفیگریشن میں متعین sshd سختی کی جانچ یا دوبارہ اطلاق کرتا ہے۔ ہر وہ آپریشن جو sshd کو چھوتا ہے پہلے کنفیگریشن کی توثیق کرتا ہے (sshd -t) تاکہ کوئی غلط تبدیلی آپ کو باہر بند نہ کر دے۔

شروع کرنے سے پہلے

جب آپ کیز بدلیں یا sshd کو ری اسٹارٹ کریں تو ایک سیشن کھلا رکھیں: اس طرح، اگر کچھ غلط ہو جائے، تو آپ اسے ٹھیک کرنے کے لیے اندر موجود رہتے ہیں۔ طے شدہ طور پر ماڈیول زیرِ انتظام صارف ubuntu پر کام کرتا ہے؛ کسی اور پر کام کرنے کے لیے --user استعمال کریں۔

فوری گائیڈمرحلہ وار کام

عام کام #

جو آپ کرنا چاہتے ہیں اسے منتخب کریں۔ ہر ترکیب کمانڈ پہلے سے لکھی ہوئی لاتی ہے — بس اپنا صارف یا کی ڈال دیں، اور کاپی کریں دبائیں۔

1

SSH رسائی کی حالت دیکھیں

ایک نظر میں جانچیں کہ sshd فعال اور درست کنفیگر شدہ ہے۔

اپنے سرور سے ubuntu صارف کے ساتھ SSH کے ذریعے جڑیں اور چلائیں:

ٹرمینل
$ sudo imaxe ssh status

کسی اسکرپٹ کے لیے درکار ہے؟ --json شامل کریں اور آپ کو وہی معلومات مشین کے پڑھنے کے قابل شکل میں ملیں گی:

ٹرمینل
$ sudo imaxe ssh status --json
آپ دیکھیں گے کہ آیا sshd فعال ہے، یہ کس پورٹ پر سنتا ہے، اور لاگو کی گئی سختی کا خلاصہ۔
2

کوئی مجاز کی شامل یا ہٹائیں

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

پہلے دیکھیں کہ زیرِ انتظام صارف کے لیے اِس وقت کون سی کیز مجاز ہیں:

ٹرمینل
$ sudo imaxe ssh keys list

کوئی پبلک کی اسے آرگیومنٹ کے طور پر دے کر شامل کریں (یا اسے معیاری ان پٹ سے پڑھنے کے لیے - استعمال کریں):

ٹرمینل
$ sudo imaxe ssh keys add "ssh-ed25519 AAAAC3Nz... ana@portatil" --comment "ana@portatil"

اب اس کی ضرورت نہیں؟ اسے اس کے fingerprint یا اس کے تبصرے سے ہٹائیں:

ٹرمینل
$ sudo imaxe ssh keys remove "ana@portatil"
صارف کی authorized_keys اپ ڈیٹ ہو جاتی ہے۔ نتیجہ keys list کے ساتھ جانچیں۔
3

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

کسی AMI سے مشین بنانے کے بعد ناگزیر۔

جب آپ کوئی امیج کلون کرتے ہیں، تو ہر نقل وہی سرور شناخت وراثت میں پاتی ہے۔ اِس مشین کے لیے تازہ، منفرد ہوسٹ کیز پیدا کریں:

ٹرمینل
$ sudo imaxe ssh hostkeys regenerate --yes
سرور کو اپنی شناخت مل جاتی ہے۔ نوٹ: fingerprint بدل جاتا ہے، اس لیے ہر کلائنٹ کا پہلا دوبارہ کنکشن آپ سے اسے دوبارہ قبول کرنے کو کہے گا۔
4

سختی کا جائزہ لیں اور دوبارہ لاگو کریں

جانچیں کہ sshd ابھی بھی جیسے ہونا چاہیے ویسے کنفیگر ہے، اور اگر نہیں تو اسے ٹھیک کریں۔

موجودہ سختی کا مطلوبہ سختی سے موازنہ کریں (وہ جو آپ کی کنفیگریشن متعین کرتی ہے):

ٹرمینل
$ sudo imaxe ssh harden show

کوئی فرق ہے؟ YAML سے سختی دوبارہ لاگو کریں اور sshd کو محفوظ طریقے سے دوبارہ لوڈ کریں:

ٹرمینل
$ sudo imaxe ssh harden reapply
کنفیگریشن مطلوبہ حالت میں لوٹ آتی ہے (SSH پر کوئی root نہیں، کوئی پاس ورڈ نہیں، صرف پبلک کی) اور sshd آپ کا سیشن گرائے بغیر دوبارہ لوڈ ہوتا ہے۔
5

سیشنز دیکھیں اور sshd ری اسٹارٹ کریں

دیکھیں کون جڑا ہوا ہے اور خود کو باہر بند کرنے کے خوف کے بغیر تبدیلیاں لاگو کریں۔

اِس وقت فعال SSH سیشنز کی فہرست بنائیں:

ٹرمینل
$ sudo imaxe ssh sessions

کنفیگریشن کی تبدیلیاں لاگو کرنے کے لیے reload کو ترجیح دیں (یہ کنکشن نہیں گراتا)؛ restart صرف اسی وقت استعمال کریں جب مکمل ری اسٹارٹ درکار ہو۔ دونوں پہلے کنفیگریشن کی توثیق کرتے ہیں:

ٹرمینل
$ sudo imaxe ssh reload
$ sudo imaxe ssh restart
اگر کنفیگریشن غلط ہو، تو آپریشن اسے لاگو کرنے سے پہلے رک جاتا ہے — آپ کی رسائی برقرار رہتی ہے۔
خیال رکھیں کہ خود کو باہر بند نہ کر بیٹھیں

sshd کو ری اسٹارٹ کرنے یا پورٹ بدلنے سے پہلے، ایک دوسرا ہنگامی سیشن کھلا رکھیں۔ اگر hostkeys regenerate کے بعد دوبارہ جڑنے پر آپ کو مختلف host key کی وارننگ ملے، تو یہ متوقع ہے: نئی شناخت قبول کریں۔

CLI حوالہکمانڈز، فلیگز اور فائلیں

نحو #

استعمال
imaxe ssh <subcomando> [<subcomando-anidado>] [argumentos] [flags]

وہ آپریشنز جو sshd، مجاز کیز یا ہوسٹ کیز کو پڑھتے یا تبدیل کرتے ہیں، انہیں root کے مراعات درکار ہیں (sudo استعمال کریں)۔ keys، hostkeys اور harden گروپ اپنی اپنی نیسٹڈ ذیلی کمانڈز کو جمع کرتے ہیں۔ scripting کے لیے موزوں آؤٹ پٹ کے لیے status، sessions، keys list یا harden show میں --json شامل کریں۔

ذیلی کمانڈز #

ذیلی کمانڈیہ کیا کرتا ہےمتعلقہ فلیگز
statussshd کی حالت: فعال، پورٹ اور سختی کا خلاصہ۔--json
keys listزیرِ انتظام صارف کی مجاز کیز کی فہرست بناتا ہے۔--user, --json
keys addایک پبلک کی شامل کرتا ہے (آرگیومنٹ یا stdin سے)۔--user, --comment
keys removeکسی کی کو fingerprint یا تبصرے سے ہٹاتا ہے۔--user
hostkeys regenerateہوسٹ کیز دوبارہ بناتا ہے (AMI کلون کرنے کے بعد نہایت اہم؛ fingerprint بدل دیتا ہے)۔--yes
sessionsفعال SSH سیشنز کی فہرست بناتا ہے۔--json
harden showموجودہ سختی کو مطلوبہ کے مقابل دکھاتا ہے۔--json
harden reapplyYAML سے سختی دوبارہ لاگو کرتا ہے اور sshd دوبارہ لوڈ کرتا ہے۔
restartsshd کو ری اسٹارٹ کرتا ہے، پہلے کنفیگریشن کی توثیق کرتے ہوئے (sshd -t
reloadsshd کو دوبارہ لوڈ کرتا ہے، پہلے کنفیگریشن کی توثیق کرتے ہوئے (sshd -t

آرگیومنٹس اور فلیگز #

آرگیومنٹ / فلیگقسمطے شدہتفصیل
<clave> لازمیstringkeys add میں: پبلک کی، یا اسے stdin سے پڑھنے کے لیے -۔
<selector> لازمیstringkeys remove میں: ہٹائی جانے والی کی کا fingerprint (SHA256:...) یا تبصرہ۔
--userstringubuntuوہ صارف جس کی authorized_keys پر استفسار یا ترمیم کی جاتی ہے (keys list/add/remove میں)۔
--commentstringkeys add میں: کی کے ساتھ منسلک تبصرہ تاکہ بعد میں اسے پہچانا جا سکے۔
--yesboolfalsehostkeys regenerate میں: بغیر پوچھے تصدیق کرتا ہے (کلائنٹس کو نظر آنے والا fingerprint بدل دیتا ہے)۔
--jsonboolfalsestatus، sessions، keys list اور harden show میں: نتیجہ stdout پر JSON کے طور پر جاری کرتا ہے۔

فائلیں اور راستے #

راستہمواد
/etc/imaxe/ssh.ymlماڈیول کی کنفیگریشن: پورٹ، لاگ اِن پالیسیاں (root، پاس ورڈ، پبلک کی)، اجازت یافتہ صارفین، زیرِ انتظام صارف اور ہوسٹ کی کی دوبارہ تخلیق۔
/home/<usuario>/.ssh/authorized_keysزیرِ انتظام صارف کی مجاز پبلک کیز جنہیں keys add/remove تبدیل کرتے ہیں۔
/etc/ssh/sshd_config.d/sshd کنفیگریشن کے ٹکڑے جہاں سختی لاگو کی جاتی ہے۔
/etc/ssh/ssh_host_*_keyہوسٹ کیز جو سرور کی شناخت کرتی ہیں اور جنہیں hostkeys regenerate تجدید کرتا ہے۔

ssh.yml کی مثال:

/etc/imaxe/ssh.yml
port: 22
permit_root_login: "no"
password_authentication: "no"
pubkey_authentication: "yes"
allow_users: []
managed_user: ubuntu
hostkeys:
  regenerate_on_first_boot: true

ایگزٹ کوڈز اور لاگز #

ہر عملدرآمد ایک کوڈ لوٹاتا ہے جسے آپ echo $? کے ساتھ جانچ سکتے ہیں — اسکرپٹس میں سلسلہ بنانے کے لیے مفید:

0OKآپریشن کامیابی سے مکمل ہوا۔
1ERRعمومی غیر درجہ بند خرابی۔ لاگ کا جائزہ لیں۔
2USAGEغلط یا غائب آرگیومنٹس۔
3CONFIGsshd -t کی توثیق ناکام ہوئی؛ کچھ لاگو نہیں ہوا۔
4NOTFOUNDکی یا صارف نہیں ملا۔
5RELOADتبدیلی لاگو ہوئی مگر sshd کی دوبارہ لوڈنگ ناکام ہوئی۔

ڈی بگ کرتے وقت سروس کے لاگ کو لائیو دیکھیں:

ٹرمینل
$ sudo journalctl -u ssh -f
$ sudo imaxe ssh harden show --json

مسائل کا حل #

علامتممکنہ وجہحل
CONFIG (کوڈ 3) نکلتا ہےسختی یا کسی دستی تبدیلی نے sshd کو غلط کنفیگریشن کے ساتھ چھوڑ دیا۔imaxe ssh harden show کے ساتھ فرق کا جائزہ لیں اور اسے ٹھیک کریں؛ توثیق کسی خراب کنفیگ کے اطلاق کو روکتی ہے۔
دوبارہ جڑنے پر، ایک مختلف host key وارننگہوسٹ کیز دوبارہ بنائی گئیں (AMI کلون کرنے کے بعد متوقع)۔یہ معمول کی بات ہے: کلائنٹ پر نئی شناخت قبول کریں اور اپنی known_hosts اپ ڈیٹ کریں۔
keys add NOTFOUND (کوڈ 4) لوٹاتا ہے--user میں دیا گیا صارف سسٹم پر موجود نہیں۔صارف نام جانچیں یا طے شدہ زیرِ انتظام صارف (ubuntu) استعمال کریں۔
میں اب پاس ورڈ سے لاگ اِن نہیں کر سکتاسختی کے ذریعے password_authentication کو "no" پر سیٹ کر دیا گیا ہے۔یہ جان بوجھ کر ہے: کسی پبلک کی سے لاگ اِن کریں اور انہیں imaxe ssh keys کے ساتھ منظم کریں۔

کیا SSH ماڈیول کے ساتھ اٹک گئے ہیں؟

«imaxe <module> status --json» کے آؤٹ پٹ کے ساتھ ہمیں لکھیں اور ہم فوراً جواب دیں گے۔

سپورٹ سے رابطہ کریں