הנה בעיה שאנשים שלפעמים מתחברים למערכות לינוקס (או Solaris או FreeBSD/מק) נתקלים בה לעיתים קרובות: אתה מתחבר ב-SSH לשרת מרוחק.זה יכול להיות שרת VPS שלך, שרת יעודי, התחברות ללינוקס בבית וכו’. אתה עושה את העבודה שלך ואז מישהו צריך את תשומת ליבך לכמה רגעים. זה יכול להיות טלפון, הבוס קורא לך, יש תקלה אחרת, ובקיצור 1001 סיבות.
לאחר שטיפלת בעניין אתה חוזר לסשן SSH שפתחת ו… הוא לא מגיב או מוציא הודעה מעצבנת Broken Pipe. האפשרות היחידה שיש לך – להתחבר מחדש, ו”להרוג” את החיבור הקודם אם אתה בדיוק עורך קובץ ב-VI או EMACS וכו’.
משתמשי לינוקס מנוסים מכירים כמובן את הפקודה screen שבעצם פותחת לך מעין “מסך”, ואם החיבור נתקע, משתמשים בפקודה screen –r כדי להתחבר מחדש, אבל לא כולם מכירים. זה גם לא תמיד שמיש, במיוחד שזה לא הותקן על השרת שהתחברת ואין לך הרשאת sudo להתקין דברים על אותו שרת.
אז איך פותרים זאת? יש 2 אפשרויות:
האפשרות הראשונה: שרת בניהולך. אם יש לך הרשאות sudo להתקין דברים ולהגדיר ברמת root, אז תוכל לשנות את קובץ etc/ssh/sshd_config ולהוסיף שורה:
ClientAliveInterval 60
לתוך הקובץ הנ”ל, לשמור, להפעיל שרות ssh (או sshd, תלוי בהפצת לינוקס) מחדש והבעיה תיפתר.
אבל מה קורה אם יש לך את הבעיה מול כל מיני שרתי לינוקס, או שיש לך חיבור אינטרנט גרוע/איטי, או שאין לך בכלל הרשאות לשנות את ה-SSH בשרת?
גם לכך יש פתרון די פשוט (בהנחה שאתה משתמש לינוקס או מק).
בתוך תיקיית המשתמש שלך, אמורה להיות תיקיה בשם ssh. (שימו לב לנקודה לפני המילה ssh). כנס לתוך תיקיה זו וצור (אם לא קיים) קובץ config, והכנס את השורות הבאות:
Host * ServerAliveInterval 300
שמור וצא מהעורך.
כעת כל מה שעליך לעשות זה להתחבר מחדש, ומעתה בעיות החיבור יפסקו.
נקודה לסיום: גם אם פתרתם את בעיית חיבורי ה-SSH, אני ממליץ בחום להכיר את פקודת screen שהזכרתי לעיל ולהשתמש בה. זה מאוד עוזר כאשר אתם נמצאים רחוק מהמחשב הנייח שלכם ואתם בדיוק צריכים לראות מה עשיתם מקודם כדי לטפל בתקלה.
נהדר. תודה.