زمانی که اتصالات SSH شما در لینوکس پاسخگو نمیشوند و ضربههای کلید کار نمیکنند، در اینجا چه کاری باید انجام دهید.
ممکن است در یک جلسه SSH راه دور تایپ کنید و ناگهان هیچ اتفاقی نمی افتد. به نظر می رسد سیستم به ضربه های کلید شما پاسخ نمی دهد. چه کار میکنی؟
در اینجا به این موضوع می پردازیم که چرا این اتفاق می افتد، چگونه می توان از یک جلسه SSH بدون پاسخ خارج شد و چرا ممکن است بخواهید به Mosh تغییر دهید.
چه چیزی باعث مسدود شدن جلسات SSH می شود؟
دلیل اصلی مسدود شدن جلسات SSH قطع شدن اتصال شبکه است. سیگنالهای Wi-Fi ممکن است کاهش یابند، یا ممکن است اجازه دهید رایانهتان به حالت خواب برود. این بیشتر در مورد لپ تاپ ها دیده می شود. ممکن است درب لپ تاپ را ببندید در حالی که فراموش کرده اید هنوز از طریق SSH وارد سیستم شده اید.
SSH در ابتدا در دوره ای طراحی شد که مردم به طور معمول از لپ تاپ استفاده می کردند. SSH روی شبکه های سیمی بهتر کار می کند.
1. با یک دنباله فرار خاتمه دهید
اگر جلسه SSH شما یخ می زند، سعی کنید از دنباله فرار استفاده کنید. یک دنباله فرار به شما امکان می دهد سیگنال هایی را به جای دستگاه راه دور به مشتری SSH ارسال کنید. سکانس های فرار با یک شخصیت فرار مقدمه می شوند. به طور پیش فرض در مشتری OpenSSH، این کاراکتر tilde (~) است.
برای خروج از سرویس گیرنده SSH، می توانید کلید tilde و سپس کلید نقطه (.) را فشار دهید.
در صورت تمایل می توانید کاراکتر escape را نیز تغییر دهید. می توانید یک کاراکتر فرار جدید را با گزینه -e در خط فرمان مشخص کنید. همچنین میتوانید با تنظیم گزینه EscapeChar در فایل .ssh/config در فهرست اصلی خود در دستگاه محلی، آن را برای همیشه تغییر دهید.
2. استفاده از دستور kill
اگر استفاده از دنباله فرار کارساز نبود، می توانید کلاینت SSH را بکشید. برای پیدا کردن شناسه فرآیند (PID) جلسه خود، دستور ps را از طریق grep وارد کنید:
ps aux | grep ssh
آرگومان “aux” به ps به این معنی است که “هر فرآیند موجود در سیستم را فهرست کنید، مهم نیست که متعلق به چه کسی است یا پایانه کنترلی دارد یا خیر.”
اگر چندین جلسه دارید، می توانید جلسه ثابت را انتخاب کنید زیرا فهرست نام کاربری و آدرس را در دستگاه راه دوری که جلسات SSH به آن وارد شده اند نشان می دهد. هنگامی که PID جلسه خود را پیدا کردید، می توانید آن را با دستور kill خاتمه دهید:
kill [PID]
برای اتصالات SSH بهتر، از Mosh استفاده کنید!
یک راه بهتر برای جلوگیری از مزاحم جلسات SSH منجمد استفاده از Mosh است. اگر اتصال قطع شود، Mosh به شما اجازه میدهد متصل بمانید. وقتی دوباره وصل میشوید، پیامهایی را ارسال میکند. همچنین زمانی که دستگاه خود را به حالت خواب میبرید کار میکند.
شما همچنین می توانید از یک مالتی پلکسر ترمینال مانند GNU Screen یا tmux برای از سرگیری جلسه SSH خود پس از هر گونه قطع اتصال استفاده کنید، اما Mosh و tmux وقتی با هم استفاده می شوند حتی قدرتمندتر هستند.
برای نصب Mosh روی دبیان و اوبونتو:
sudo apt install mosh
و در آرچ لینوکس:
sudo pacman -S mosh
در مورد خانواده توزیع کنندگان کلاه قرمزی:
sudo dnf install mosh
اکنون می توانید از شر جلسات SSH گیر افتاده خلاص شوید
جلسات بدون پاسخ SSH می تواند ناامید کننده باشد ، اما می توانید با یک دنباله فرار یا دستور کشتار از شر آنها خلاص شوید. MOSH جایگزینی حتی بهتر است که ارتباط شما را از طریق قطره اتصال و خواب سیستم زنده می کند.