ویرایشگر VPN راه دور از طریق SSH: کدام ماشین را ویرایش میکنید؟
انتقال X11 یک ویرایشگر راه دور را روی لپتاپ شما نشان میدهد، اما نمایه و مسیرها روی میزبان راه دور میمانند. پیش از ذخیره، میزبان، UUID و مسیر بازگشت را بررسی کنید.
انتقال X11 پنجره ویرایشگر را روی لپتاپ شما میگذارد در حالی که فرایند بر روی میزبان راه دور ادامه دارد. همین شکاف کل تله است: شما به پنجرهای محلی نگاه میکنید و نمایهای راه دور را ویرایش میکنید، و فرض نادرست درباره اینکه کدام ماشین مالک تغییر است میتواند پیوند SSH را که روی آن کار میکنید قطع کند. چکلیست زیر میزبان و نمایه را پیش از ذخیره هر چیزی تثبیت میکند. هر گام شرط توقف دارد، پس شکست زودهنگام ارزان است.
گام 1: ماشینی را که مالک نمایه است نام ببرید
دستورهای هویت را در پوستهای که میخواهید پیکربندی کنید اجرا کنید و پاسخ را بخوانید به جای اینکه از اعلان فرض بگیرید. نام میزبان در اعلان رشتهای است که پوسته شما چاپ کرده؛ نام میزبان هسته همان چیزی است که بقیه این چکلیست به آن اعتماد دارد. اگر این دو ناسازگار باشند، شما روی ماشین اشتباه هستید یا اعلان را پوسته محلی شما آراسته است. توقف کنید و پیش از ادامه به میزبان موردنظر دوباره وصل شوید.
hostnamectl
hostname -f
ip -brief address
پرسش بعدی این است که آیا این ماشین اصلاً باید VPN را نگه دارد. پیکربندی کلاینت لپتاپ و پیکربندی کلاینت میزبان راه دور مسیرها، DNS و حالتهای شکست متفاوتی تولید میکنند. پیش از دست زدن به نمایه تصمیم بگیرید کدام را میخواهید و تصمیم را جایی بنویسید که نفر بعدی آن را پیدا کند.
گام 2: نمایه را با UUID بخوانید، نه با برچسب
NetworkManager اتصال را با UUID شناسایی میکند، در حالی که نام برچسبی است که هر کسی میتواند ویرایش یا تکثیر کند. هر دو را فهرست کنید و ورودیای را که واقعاً میخواهید مطابقت دهید، بهویژه روی میزبانی که طی سالها چندین نمایه VPN در آن وارد شده است.
nmcli -f NAME,UUID,TYPE connection show
nmcli connection show --active
nmcli general permissions
ورودیهای ذخیرهشده و اتصالهای فعال به پرسشهای متفاوتی پاسخ میدهند: اولی فهرست میکند چه چیزی وجود دارد، دومی فهرست میکند چه چیزی همین حالا ترافیک را حمل میکند. خط مجوزها سیاست محلی جلسه شما را توصیف میکند و هیچ نمیگوید که آیا دروازه VPN حساب را میپذیرد یا نه. اگر نمایه موردنیاز در فهرست ذخیرهشده نیست، همینجا توقف کنید، چون ویرایش ورودی اشتباه بدتر از ویرایش نکردن است.
وقتی UUID را دارید، آن را در یک متغیر بگذارید و از آن متغیر در هر دستور بعدی استفاده کنید. این کار یک رده کامل از خطاهای کپی و چسباندن را حذف میکند و رونوشت را قابل بازتولید میسازد.
UUID=$(nmcli -g UUID connection show 'Corp VPN')
nmcli connection edit uuid "$UUID"
گام 3: تصمیم بگیرید آیا ویرایشگر گرافیکی ابزار درست است
ویرایشگری که به اعلان polkit یا عامل راز نیاز دارد، فقط به این دلیل که پنجرهاش روی لپتاپ شما ظاهر میشود آن را دریافت نمیکند. آن اجزا در بستر جلسه راه دور اجرا میشوند و انتقال نمایشگر آنها را منتقل نمیکند. اگر ویرایشگر با خطای مجوز یا راز نمیتواند ذخیره کند, نمایشگر مشکل نیست.
echo "$DISPLAY"
ssh -X you@vpn-host
xauth list
OpenSSH انتقال X11 را با -X فعال میکند و احتیاط همراه آن را مستند میکند: میزبان راه دور میتواند به نمایشگر محلی شما برسد، که یک مرز اعتماد واقعی است. انتقال مورداعتماد با -Y برخی از آن بررسیها را حذف میکند و هرگز نباید راهحل بازتابی برای برنامهای باشد که در حالت پیشفرض شکست میخورد. اگر سازمان شما روشی برای مدیریت راه دور منتشر میکند، از همان استفاده کنید به جای ساختن گونهای تازه. در بیشتر موارد ویرایشگر خط فرمان سطح کوچکتر و پاسخ بهتر است.
همینجا توقف کنید اگر تنها مسیر کارآمد نیازمند -Y است و نمیتوانید توضیح دهید چرا. این تصمیمی برای صاحب سیاست امنیتی است، نه راه گریزی برای نگه داشتن در اسکریپت شخصی.
گام 4: پیش از فعال کردن هر چیزی یک مسیر بازیابی نگه دارید
تغییر VPN میتواند مسیری را که جلسه SSH شما به آن وابسته است حذف کند، پس پیش از فعال کردن نمایه راهی برای بازگشت ترتیب دهید. دسترسی کنسول، نشانی مدیریت خارج از باند یا بازگشت زمانبندیشده همه به حساب میآیند؛ امید به اینکه تغییر کار میکند به حساب نمیآید.
sudo systemctl status NetworkManager
ip route show default
ss -tn state established '( sport = :22 )'
فقط نمایه موردنظر را فعال کنید، سپس از میزبان راه دور بررسی کنید: مسیر پیشفرض، مسیر بازگشت SSH و یک منبعی که باید از طریق تونل در دسترس باشد. بررسی موفق از لپتاپ شما مسیر لپتاپ را میآزماید و درباره میزبان راه دور چیزی نمیگوید. اگر جلسه افتاد، از مسیر بازیابی استفاده کنید نه اتصال دوباره کورکورانه. ذخیره یک نمایه فعالسازی نیست، و فعالسازی تأیید نیست.
UUID، مقادیر ویژگیهایی که تغییر دادید و دستورهایی که برای تأیید آنها به کار بردید را ثبت کنید. نفر بعدی که به این میزبان دست میزند به هر سه نیاز خواهد داشت، و رونوشت از خلاصهای که میگوید VPN درست شد ارزشمندتر است. چکلیستی که بدون یادداشت بازگشت تمام شود نصف چکلیست است.