טריקים קטנים של SSH

מאמר זה מכיל את שיטות העבודה המומלצות שלנו לשימוש יעיל יותר ב-SSH. בו תלמדו כיצד:

  • הוסף גורם שני לכניסה ל-SSH
  • השתמש בבטחה בשילוח סוכן
  • צא מהפעלת SSH מופרעת
  • שמור על מסוף מתמשך פתוח
  • שתף מפגש מסוף מרוחק עם חבר (ללא זום!)

הוספת גורם שני ל-SSH שלך

אתה יכול להוסיף גורם שני של אימות לחיבורי ה-SSH שלך בחמש דרכים שונות:

  1. עדכן את ה-OpenSSH שלך והשתמש במפתח ההצפנה. בפברואר 2020, OpenSSH הוסיפה תמיכה במפתחות הצפנה FIDO U2F (Universal Second Factor). זוהי תכונה חדשה ומעולה, אבל יש אזהרה: רק אותם לקוחות ושרתים שעודכנו ל-OpenSSH 8.2 ומעלה יוכלו להשתמש במפתחות הצפנה, מכיוון שהעדכון של פברואר מציג עבורם סוגי מפתחות חדשים. קְבוּצָה ssh –V אתה יכול לבדוק את גרסת הלקוח של SSH ואת גרסת השרת עם הפקודה nc [servername] 22

    לגרסת פברואר נוספו שני סוגים חדשים של מפתחות - ecdsa-sk ו-ed25519-sk (יחד עם התעודות המתאימות). כדי ליצור קובץ מפתח, פשוט הכנס את מפתח ההצפנה שלך והפעל את הפקודה:
    $ ssh-keygen -t ecdsa-sk -f ~/.ssh/id_ecdsa_sk

    זה יפיק מפתחות ציבוריים ופרטיים ויקשר אותם למכשיר ה-U2F שלך. תפקידו של המפתח הסודי במכשיר U2F הוא לפענח את מתאר המפתח הסודי בדיסק כאשר מפתח ההצפנה מופעל.

    בנוסף, כגורם משני, אתה יכול לספק ביטוי סיסמה למפתחות שלך.

    מפתח תושב הוא סוג אחר של יצירת מפתח -sk הנתמך על ידי OpenSSH. בגישה זו, הידית מאוחסנת במכשיר U2F ומאפשרת לך לקבל אותה עם מפתח ההצפנה בעת הצורך. אתה יכול ליצור מפתח תושב עם הפקודה:

    $ ssh-keygen -t ecdsa-sk -O resident -f ~/.ssh/id_ecdsa_sk

    לאחר מכן, כדי להחזיר את הידית לזיכרון במכשיר החדש, הדבק את מפתח ההצפנה והפעל את הפקודה:

    $ ssh-add -K

    בעת התחברות למארח, עדיין תצטרך להפעיל את מפתח ההצפנה.

  2. השתמש ב-PIV+PKCS11 וב-Yubikey. חיבור למכשירים עם גרסאות קודמות של SSHD באמצעות מפתח הצפנה ידרוש גישה אחרת. ליוביקו יש מדריך לשימוש ב-U2F+SSH עם PIV/PKCS11. זה לא זהה ל-FIDO U2F, ולמרות שהשיטה עובדת, נדרשת עבודה רבה כדי להבין איזה קסם מניע אותה.
  3. החל סוכן ssh של yubikey-agent מותאם אישית. פיליפו ואלסורדה כתב את סוכן SSH עבור Yubikeys. הוא חדש לחלוטין ומכיל תכונות מינימליות.
  4. השתמש ב-Touch ID וב-Sekey. Sekey הוא סוכן SSH בקוד פתוח המאחסן מפתחות פרטיים במובלעת מאובטחת ב-Mac ומאפשר להשתמש ב-Touch ID לפונקציונליות גישה.
  5. השתמש בסימן יחיד ב-SSH. כתבתי מדריך שיעזור לך להגדיר שיטה זו. אחד היתרונות של סימן יחיד ב-SSH הוא היכולת למנף את מדיניות האבטחה של ספק הזהות שלך - כולל תמיכה באימות רב-גורמי (MFA).

שימוש בטוח בשילוח סוכן

העברת סוכן SHH מאפשרת למארח מרוחק לגשת לסוכן SSH של המכשיר המקומי שלך. כאשר אתה משתמש ב-SSH כאשר העברת סוכן מופעלת (בדרך כלל באמצעות ssh -A), יהיו שני ערוצים בחיבור: הפגישה האינטראקטיבית שלך והערוץ להעברת סוכן. דרך ערוץ זה, שקע ה-Unix שנוצר על ידי סוכן ה-SSH המקומי שלך מתחבר למארח המרוחק. זוהי שיטה מסוכנת מכיוון שמשתמש עם גישת שורש במכשיר המרוחק יכול לקבל גישה לסוכן ה-SSH המקומי שלך ועלול להתחזות אליך באינטרנט. אם תשתמש בסוכן ה-SSH הסטנדרטי מתוך ערכת Open SSH, אפילו לא תדע שזה קרה. ברשותך מפתח U2F (או Sekey) יעזור לך לחסום ביעילות כל ניסיונות להשתמש בסוכן ה-SSH שלך מבחוץ.

אפילו עם אמצעי זהירות זה, מומלץ להשתמש בשילוח סוכן כמה שפחות. אתה לא צריך להשתמש בו עבור כל הפעלה - השתמש ב-agent forwarding רק כאשר אתה בטוח שהוא נחוץ עבור ההפעלה הנוכחית.

יציאה מהפעלה תלויה

הפרעה לרשת, תוכניות שמתנהגות ללא שליטה או רצף בריחה שחוסם קלט מקלדת הם כל הסיבות האפשריות להפסקת הפעלת SSH.

ישנן מספר דרכים לסיים מפגש תלוי:

  1. צא אוטומטית כאשר הרשת מופסקת. עליך להוסיף את הדברים הבאים ל-.ssh/config שלך:
    ServerAliveInterval 5
    ServerAliveCountMax 1

    ssh ישלח הד למארח המרוחק בכל שניות ServerAliveInterval כדי לבדוק את החיבור. אם יותר מהדים של ServerAliveCountMax לא יקבלו תגובה, ssh תקצוב את החיבור ותצא מההפעלה.

  2. צא מהישיבה. ssh כברירת מחדל משתמש בתו ~ (tilde) בתור תו השליטה שלו. צוות~. סוגר את החיבור הפתוח ומחזיר אותך למסוף. (אפשר להזין רצפי בריחה רק בשורה חדשה.) ה-~? יציג רשימה מלאה של פקודות זמינות בהפעלה זו. שים לב שכדי להקליד את התו ~ במקלדות בינלאומיות, ייתכן שיהיה עליך ללחוץ פעמיים על המקש ~.

למה בכלל קורות הפעלות קפואות? כאשר האינטרנט נוצר, מחשבים כמעט ולא עברו ממקום למקום. כאשר אתה משתמש במחשבים ניידים ועובר בין מספר רשתות IPv4 WiFi, כתובת ה-IP שלך משתנה. מכיוון ש-SSH מסתמך על חיבורי TCP, אשר בתורם מסתמכים על נקודת קצה עם כתובת IP יציבה, בכל פעם שאתה עובר בין רשתות, חיבורי ה-SSH שלך מחמיצים את ידית השקע ולמעשה אובדים בעצמם. כאשר כתובת ה-IP שלך משתנה, לוקח זמן עד שמחסנית הרשת שלך מזהה את אובדן הידית. כאשר מתרחשות בעיות רשת, איננו רוצים שאחד הצמתים בחיבור ה-TCP יסיים אותו מוקדם מדי. לכן, הפרוטוקול ינסה לשלוח שוב את הנתונים עוד מספר פעמים לפני שיוותר סופית. בינתיים, בטרמינל שלך, ההפעלה תיראה קפואה. IPv6 מוסיף מספר תכונות הקשורות לניידות המאפשרות למכשיר לשמור על כתובת הבית שלו תוך כדי שינוי רשת. אולי יום אחד זו לא תהיה כזו בעיה.

כיצד לשמור על מסוף מתמשך פתוח במארח מרוחק

ישנן שתי גישות שונות כיצד לשמור על הקשר שלך בעת מעבר בין רשתות שונות או רצון להתנתק לזמן מה.

1. נצלו מוש או טרמינל נצחי

אם אתם באמת צריכים חיבור שלא נושר גם כשאתם עוברים בין רשתות, השתמשו במעטפת המובייל של Mosh. זוהי מעטפת מאובטחת שמשתמשת תחילה בלחיצת היד של SSH ולאחר מכן עוברת לערוץ מוצפן משלה למשך ההפעלה. כך יוצר מוש ערוץ נפרד, עמיד ומאובטח, שיכול לעמוד בהפרעות אינטרנט, שינוי כתובת ה-IP של המחשב הנייד, הפסקות רשת חמורות ועוד ועוד, וכל זה גם בזכות הקסם של חיבורי UDP. כמו מוש פרוטוקול הסנכרון.

כדי להשתמש ב-Mosh תצטרך להתקין אותו גם בלקוח וגם בשרת, ולפתוח את היציאות 60000-61000 לתעבורת UPD לא מחוברת למארח המרוחק שלך. בעתיד, כדי להתחבר זה יספיק לשימוש mosh user@server.

מוש פועלת ברמת המסכים וההקשות, מה שמקנה לה מספר יתרונות על פני שליחת זרם בינארי של קלט ופלט סטנדרטיים בין הלקוח לשרת ה-SSH. אם אנחנו צריכים רק לסנכרן מסכים והקשות, אז שחזור חיבור שבור מאוחר יותר הופך להרבה יותר קל. בעוד ש-SSH יחצץ וישלח את כל מה שקרה, מוש צריך רק לחצץ הקשות ולסנכרן את המסגרת האחרונה של חלון הטרמינל עם הלקוח.

2. השתמש ב-tmux

אם אתה רוצה "לבוא וללכת כרצונך" ולתחזק סשן מסוף על מארח מרוחק, השתמש מרבב טרמינלי tmux. אני אוהב tmux ומשתמש בו כל הזמן. אם חיבור ה-SSH שלך מופרע, אז כדי לחזור לסשן ה-tmux שלך אתה רק צריך להתחבר מחדש ולהיכנס tmux attach. בנוסף, יש לו תכונות נפלאות כמו כרטיסיות ופאנלים תוך-טרמינליים, בדומה לכרטיסיות במסוף iOS, ויכולת לשתף מסופים עם אחרים.

Некоторые любят приукрасить свой tmux с помощью Byobu, пакетом который значительно улучшает удобство использования tmux и добавляет в него много сочетаний клавиш. Byobu поставляется вместе с Ubuntu, и его легко установить на Mac через Homebrew.

שיתוף הפעלת טרמינל מרוחק עם חבר

לפעמים, בעת איתור באגים בבעיות מורכבות בשרתים שלך, ייתכן שתרצה לשתף סשן SSH עם מישהו שאינו נמצא באותו חדר כמוך. tmux מושלם למשימה זו! זה לוקח רק כמה שלבים:

  1. ודא ש-tmux מותקן על צומת ה-bastion שלך, או על כל שרת שאתה הולך לעבוד איתו.
  2. שניכם תצטרכו להכניס SSH למכשיר באמצעות אותו חשבון.
  3. אחד מכם חייב להפעיל tmux כדי להתחיל סשן tmux.
  4. השני צריך להפעיל את tmux attach
  5. וואלה! יש לך טרמינל משותף.

אם אתה רוצה הפעלות tmux מרובות משתמשים מתוחכמות יותר, נסה את tmate, מזלג של tmux שמקל בהרבה על הפעלות מסוף משותפות.

מקור: www.habr.com

קנה אירוח אמין לאתרים עם הגנת DDoS, שרתי VPS VDS 🔥 קנה אחסון אתרים אמין עם הגנת DDoS, שרתי VPS VDS | ProHoster