SSH ProxyCommand اور ہوسٹ پر مبنی توثیق: کون سا ہوسٹ دستخط کرتا ہے؟
باسٹین کے ذریعے TCP اسٹریم آگے بھیجنے اور وہاں دوسرا SSH کلائنٹ شروع کرنے میں فرق کریں، جب ہوسٹ پر مبنی توثیق شامل ہو۔
ہدف باسٹین سے آنے والا TCP کنکشن دیکھ سکتا ہے جبکہ توثیق کرنے والا SSH کلائنٹ اب بھی ورک اسٹیشن پر چل رہا ہے۔
Host behind-bastion
ProxyCommand ssh -W %h:%p bastionیہاں مددگار باسٹین میں لاگ ان کرتا ہے اور اس کے SSH سرور سے ہدف کی طرف بھیجا گیا کنکشن مانگتا ہے۔ ورک اسٹیشن کا بیرونی SSH کلائنٹ اسی اسٹریم کے ذریعے ہدف کا SSH پروٹوکول بدلتا ہے۔ باسٹین نقل و حمل فراہم کرتا ہے؛ اس نے ہدف کی طرف والا SSH کلائنٹ شروع نہیں کیا۔
یہ فرق ہوسٹ پر مبنی توثیق کے لیے اہم ہے۔ OpenSSH کا ssh-keysign مددگار مطلوبہ دستخط بنانے کے لیے مقامی ہوسٹ چابیاں استعمال کرتا ہے۔ باسٹین کا نیٹ ورک ماخذ پتہ ہونا ورک اسٹیشن کو باسٹین کی ہوسٹ چابی سے دستخط کرنے پر مجبور نہیں کرتا۔
اس کا موازنہ کریں:
ssh -t bastion ssh targetیہ باسٹین پر دوسرا SSH پروگرام شروع کرتا ہے۔ اس کی مقامی ترتیب اور دستیاب ہوسٹ چابیاں اسی مشین کی ہیں، اس لیے یہ باسٹین اور ہدف کے درمیان پہلے سے ترتیب شدہ ہوسٹ پر مبنی اعتماد کے انتظام میں حصہ لے سکتا ہے۔ اسے اب بھی ہدف کی متعلقہ اجازت اور نام کی جانچ درکار ہے۔
دوسری شکل سیشن کے کام کرنے کا طریقہ بھی بدلتی ہے: یہ دور دراز کمانڈ چلاتی ہے اور ٹرمینل استعمال کرتی ہے۔ یہ ہر SSH فائل منتقلی یا آٹومیشن نقل و حمل کے لیے شفاف متبادل نہیں ہے۔ ماخذ پتہ کافی دکھے اس کے لیے سرور کی اعتماد جانچ کمزور کرنے کی بجائے یہ منتخب کریں کہ کون سی مشین ہدف کے سامنے توثیق کرے گی۔