OpenVPN خپله پټنوم له ټرمینل څخه لولي، نه له stdin څخه
OpenVPN په رښتیا پټنوم چېرته لولي، ولې پر stdin فایل ناکامېږي، او په Linux او macOS کې د سکریپټي ننوتلو لپاره درې ملاتړ شوې لارې.
OpenVPN د کنټرول ټرمینل کې کارننوم او پټنوم غواړي، او هغه فایل چې معیاري ننوت ته اړول شوی وي هغه ټرمینل نه دی۔ همدا یوه جزئیات هغه سکریپټ تشریح کوي چې پټنوم هماغلته په نل کې پروت وي او بیا هم ځړېدلی وي۔ غوښتنه کلاینټ جوړوي او لوستل د ټرمینل وسیلې څخه کېږي، نو د stdin اړول هېڅ نه بدلوي۔ کلاینټ د خپلو مستند ننوتلو لارو له یوې له لارې تغذیه کړئ او هماغه سکریپټ به په لومړي هڅه کې وصل شي۔
درې لارې نږدې هر حالت پوښي، او هر یو په خپله طریقه ناکامېږي۔ د هغې غوښتنې له مخې غوره کړئ چې کلاینټ یې رښتیا ښیي، نه د هغې انتخاب له مخې چې سکریپټ کول یې اسانه دي۔
غوښتنه له stdin څخه نه راځي
کله چې OpenVPN ته اعتبارنامې ته اړتیا وي کنټرول ټرمینل پرانیزي او هماغلته لولي۔ همدا لامل دی چې متقابل ازموینه ښه ښکاري، خو هماغه حکم د cron یا unit فایل لاندې بې حرکته ولاړ وي او غوښتنه په هغه لاګ کې لیکل شوې وي چې څوک یې نه ګوري۔ ځینې ډلې کله چې ټرمینل نه وي معیاري ننوت ته ورګرځي، او دا نیمګړتیا له سخت ناکامۍ هم بدتره ده، ځکه چې تر ځای پرځای کولو پورې ستونزه پټوي۔
له هر کوم کوډ لیکلو دمخه چاپېریال وګورئ: کلاینټ د هماغه کارن او هماغه stdin سره چل کړئ چې مهالوېش جوړونکی یا د خدمتونو مدیر به یې کاروي۔ که غوښتنه هېڅکله په لاګ کې ونه ښکاري او بهیر مخ نه ځي، نو یو څه د هغه ټرمینل انتظار کوي چې نشته۔
لومړی لار: د دوو کرښو اعتبارنامه فایل
د تصدیق انتخاب یوه لار اخلي، او فایل دقیقاً دوه کرښې لري، لومړی کارننوم بیا پټنوم، او نور هېڅ نه۔ لار په صراحت سره ورکړئ، د تلوالیز فایل نوم پر ځای، ځکه چې په کاري فولډر کې پرېوتې اعتبارنامه فایل هماغه لاره ده چې غلط حساب کارونې ته رسیږي۔ حالت 0600 ته وټاکئ او مالکیت هغه حساب ته ورکړئ چې کلاینټ چلوي۔
کلاینټ دا فایل د پیل پر مهال یو ځل لولي، نو پټنوم څرخول په دې مانا دي چې بهیر بیا پیل شي۔ معمولاً همدا هغه چلند دی چې غواړئ، او د څرخولو طرزالعمل تر څنګ په runbook کې ځای لري۔
دویم لار: د کیلي د پټنوم جملې لپاره askpass
د پټنوم جملې سره ساتل شوی شخصي کیلي دویمه، بېله غوښتنه راپورته کوي، او هغې ته خپل فایل ته ولاړ ځواب دی: askpass انتخاب جمله د فایل له لومړي کرښې لولي۔ د SSH پر بنسټ تونلونو لپاره معادل هغه askpass پروګرام دی چې کلاینټ یې چلوي، او معیاري وتنه یې پټه راز ګرځي۔
هېڅ یوه بڼه راز د استدلالونو په لیست کې نه ږدي، او دواړه یې پرېږدي چې د فایل په توګه یا د چاپوونکي اجرایي پروګرام په توګه شتون ولري۔ ساتنه د فایل اجازه او د بهیر مالکیت دی، نه پټوالی۔ هغه مرستندوی چې په کوډ کې لیکل شوې رشته تکراروي، د زیاتو ګامونو راز دی۔
درېیم لار: د پورټال کلاینټ خپل CLI
سوداګریز کلاینټونه معمولاً د حکم کرښې د ننوتلو نقطه برابروي چې پرته له کړکۍ نومول شوي پورټال ته نښلوي، او همدا ملاتړ شوې لاره ده۔ په Linux کې GlobalProtect کلاینټ د خپل CLI له لارې د نښلولو او سند واردولو عملیات برابروي، او هغه پورټالونه چې د سند تصدیق کاروي له اتومات نښلولو دمخه د واردولو ګام ته اړتیا لري۔ له مصنوعي کیلي فشارونو یې غوره کړئ: رښتینی وتلو حالت ترلاسه کوئ، پر کړکۍ فوکس تکیه نه لرئ، او په قفل شوې پرده هم پاتې کېږي۔
که لومړي نښلولو ته اوس هم یو انسان ته اړتیا وي چې سند ومني، اتومات کول بشپړ شوي نه دي۔ واردول د برابرولو پر مهال وکړئ او د مخکیني شرط په توګه یې ولیکئ۔
کله چې بهیر ته سویډو-ټرمینل ته اړتیا وي
هغه ترتیب چې لومړی پټنوم بیا یو ځلي کوډ غواړي، د لوستلو لپاره یو فایل نه لري۔ د Expect په څېر ټرمینل ډرایور سمه وسیله ده، ځکه چې هر نمونه په نوبت سره انتظار کوي، او تر هغه چې بهیر پیل شوی نه وي نشي کولای څه سره سمون ورکړي۔
دوه ناکامۍ غالبه دي۔ هغه سکریپټ چې پرته له کلاینټ پیلولو غوښتنې ته انتظار کوي، تل انتظار کوي، او Tcl shell نه دی، نو هغه shell ریاضي چې د expect بلاک دننه لیکل شوې وي داسې نه ارزول کېږي لکه څنګه چې لوستل کېږي۔ د نمونو جوړولو پر مهال د ډیبګ بیرغ روښانه وساتئ، بیا یې مړ کړئ۔
هغه رازونه چې تویېږي، او چېرته پټېږي
هر څه چې د استدلال په توګه ورکړل شي د بهیرونو په لیست کې ښکاري، نو اعتبارنامې باید په فایل کې یا د مرستندوی شاته وي، هېڅکله د حکم په کرښه کې نه۔ یو ځلي کوډونه د ډیزاین له مخې مصرفېږي او د هرې هڅې لپاره باید جوړ شي۔ د ناکامۍ لاګونه ډېری کارننوم او کله ناکله ډېر نور هم لري، نو د هرې خوا ته لېږلو دمخه یې پاک کړئ، او راز له پروفایل څخه بهر وساتئ، ځکه چې دننه پټنوم لرونکی ترتیبات فایل ټیکټونو او ذخیرو ته نښلول کېږي۔ بیا د حساب څرخول هرې کاپي ته د ښکار تګ دی، او همدا لګښت دی چې دا ترتیب ترې ډډه کوي۔
هغه لارې چې غوره کړې یې بیاکتنه کړئ، بیا یې د unit فایل یا مهالوېش جوړونکي سره ونښلوئ چې کلاینټ به رښتیا چلوي۔ تونل دقیقاً هغومره ژوند کوي چې هغه بهیر ژوند کوي۔