שליטה בפקודות SSH ב-Linux עבור מנהלי Windows

לינוקס ווינדוס השתמשו להיות אויבים מולדים, אך כיום הם נוטים להתקרב הרבה יותר. בעצם, כיום תוכל אפילו להשתמש ב־SSH ישירות בווינדוס: גם כלקוח וגם כשרת. מה עושים כשאתה מנהל בווינדוס אבל גם צריך לנהל מכונות לינוקס? אתה מתרגל להשתמש בפקודת (Secure Shell) SSH בלינוקס!

זהו חלק IV בסדרת פוסטים בבלוג – "איש ווינדוס בעולם של לינוקס". אם ברצונך ללמוד עוד על יישובים פופולריים בלינוקס, הקפוץ לפרטים ב-חלק I, חלק II, ו־חלק III.

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

הערה: כל הדוגמאות ישתמשו ב־OpenSUSE Linux.

העבר מסביב לסביבת שולחן העבודה

בחזרה בפוסט הראשון בסדרה, המדר המליץ להשתמש בסביבת שולחן העבודה KDE. במהלך ההתקנה של OpenSUSE, ייתכן שראית אפשרות מרתקת נוספת; גרסת השרת של OpenSUSE.

Server Edition of OpenSUSE

אם התקנת את גרסת השרת של רוב ההפצות של Linux (כולל OpenSUSE), ייתכן ששם לבת לחוסר הולם לחלוטין של שולחן עבודה. גרסת השרת של רוב ההפצות הפופולריות (כמו OpenSUSE, וגם Ubuntu Server ו-CentOS) היא דומה ל-Windows Server Core: אין שולחן עבודה לדבר עליו.

כדי להבין למה השולחן עבודה נדחה כלפי ברירת המחדל בתרבות ה-Linux, עליך להבין את ה-CLI וה-SSH.

SSH: התקן הזהב של ניהול מרחוק

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

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

שימוש בפקודות SSH ב-Linux

די לדברים. בוא נראה מה ניתן לעשות עם SSH על ידי הפעלתו תחילה ב-OpenSUSE Linux. כדי לעשות זאת, השתמש במנהל החבילות YaST. כדי להפעיל SSH עם YaST ב-OpenSUSE:

  1. לחץ על תפריט ההתחלה, הקלד terminal ובחר Konsole אם התקנת את מנהל השולחן העברי KDE במהלך ההתקנה של OpenSUSE.
  2. בטרמינל, פתח את YaST על ידי הרצת sudo yast.
  3. פעם בתוך YaST, הזז למטה אל מערכת, ואז הזז ימינה אל מנהל שירותים ולחץ Enter כדי להמשיך.
  4. הזז למטה אל sshd, ולחץ alt+s כדי להתחיל את שירות ה-SSH.
  5. לחץ alt+r כדי לשנות את מצב ההתחלה מידני לאוטומטי. זה יבטיח ששירות שרת ה-SSH יתחיל אפילו לאחר הפעלת מחדש.
  6. לחץ alt+o כדי לאשר את השינויים ולהחיל אותם.

ניתן לראות את השלבים הללו בפעולה למטה.

Using YaST from the command line to enable SSH

מאפשר SSH דרך הגנה בגידול

כמעט כל ההפצות של Linux מגיעות עם סוג של גידול להגנה כמו שעושה Windows. ניתן לקרוא על הגידול של OpenSUSE כאן. כדי לוודא שניתן לגשת לשירות SSH מרחוק מחלון, יש לאפשר אותו דרך הגידול. כדי לעשות זאת:

  1. עדיין בטרמינל, התחל שוב את YaST עם sudo yast.
  2. הזז למטה אל אבטחה ומשתמשים ואז הזז ימינה אל גידול ולחץ Enter כדי להמשיך.
  3. נווט אל אזורים –> ציבורי והזז ימינה אל חלון שירותים—פורטים.
  4. הזז למטה כדי למצוא ssh בשירותים.
  5. בחר ssh עם מקש הרווח ולחץ alt+d כדי להוסיף את הבחירה.
  6. לחץ alt+a כדי לאשר את השינויים.

אתה יכול לראות את כל השלבים הללו מתוארים ויזואלית למטה.

Using YaST from the command line to let SSH through the firewall

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

התחברות ללינוקס מ-ווינדוס

במזל טוב, בימים אלו, ב- Windows 10 יש לך תוכנית SSH מובנית. כדי להתחבר לשרת לינוקס, פתח חלון פקודות (cmd) או קונסולת PowerShell וציין את שם המשתמש שברצונך להתחבר עימו ואת כתובת ה-IP או השם המארח.

> ssh <username>@<ip address>

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

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

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

אל תחשוף את SSH (פורט ברירת המחדל 22) לאינטרנט דרך הנתב שלך. בוטים חופשיים באינטרנט באופן מתמיד מחפשים פורטים SSH פתוחים. מיד שבוט מוצא פורט פתוח, הוא מתחיל לשלוח סיסמאות בניסיון לחדור בכוח פריצה.

הפעלת תמיכת עכבר ב-SSH עם Windows

אחד החסרונות הגדולים בשימוש בלקוח SSH המובנה של Windows 10 (לפחות בזמן כתיבת המאמר הזה) הוא החוסר בתמיכה בעכבר. זה אומר שאין אפשרות להשתמש בעכבר ב-midnight commander כמו שלמדת בפוסט בלוג קודם.

ממש מזל שהחל מ-גרסה שמונה של לקוח OpenSSH ל-Windows, תוכל לקבל תמיכה בעכבר! בוא נתקין את הלקוח הזה.

  1. הורד את הגרסה האחרונה של OpenSSH-Win64 מכאן וחלץ את קובץ ה-ZIP שתקבל. המדריך יניח שתחלץ אותו אל ~\Downloads\OpenSSH-Win64.
  2. פתח קונסולת PowerShell ונווט אל ~\Downloads\OpenSSH-Win64 באמצעות cd ~\Downloads\OpenSSH-Win64.
  3. בדוק את גרסת הלקוח SSH על ידי הרצת .\\ssh -V. לפי המדריך זה, הגרסה צריכה להיות 8.1.0.0-p1.
  4. התחבר לשרת Linux שלך באמצעות .\ssh <user>@<ip>.
  5. לאחר התחברות, בדוק את תמיכת העכבר על ידי הרצת mc כדי להפעיל midnight commander ולוודא שאפשר להשתמש בעכבר.

תוכל לראות את כל השלבים הללו מתוארים גם חזותית למעלה.

דריסת הלקוח SSH המובנה ברירת המחדל

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

בהנחה שהלקוח שלך נחלץ לתיקיית ~\Downloads\OpenSSH-Win64

  1. , תזיז את תיקיית OpenSSH-Win64 שנחלצה לתיקייה קבועה שבחרת. במדריך הזה נשתמש ב־C:\users\public\OpenSSH-Win64.
  2. עבור לתפריט התחלה, ואז ל־הפעל, והקלד sysdm.cpl או פתח מאפייני מערכת מתוך לוח הבקרה.
  3. בלשונית מתקדם, לחץ על משתנים סביבה.
  4. בתחתית משתנים מערכתיים, לחץ על נתיב.
  5. לחץ על חדש כדי להוסיף נתיב חדש וציין את נתיב התיקייה ללקוח ה־SSH (C:\users\public\OpenSSH-Win64 במקרה זה).
  6. לחץ על הזז למעלה עד שיהיה מעל תיקיית %SystemRoot%\system32. זה יבטיח שבכל פעם שתקליד ssh בשורת הפקודה, Windows תחפש כאן תחילה.
  7. פתח עורך PowerShell והפעל את ssh -V. אתה צריך לראות שהגרסה היא 8.1.0.0-p.

תהליכים אלה סוכמו למטה.

Overriding the Default SSH Client

העדיפות לתיקייה מעל %SystemRoot%\system32 עשויה להיות סיכון אבטחה. אם מישהו מצליח לגשת למחשב שלך, הוא יכול להחליט להכניס וירוס לתיקיית OpenSSH-Win64 ולתת לו שם של יועד חלונות כמו cd.exe.

עליך להגביל את תיקיית OpenSSH-Win64 כך שרק מנהלי המערכת יוכלו לקרוא לתיקייה.

  1. לחץ ימנית על תיקיית OpenSSH-Win64 ולחץ על מאפיינים.
  2. תחת לשונית אבטחה, לחץ על הכפתור מתקדם.
  3. לחץ על השבת ירושה כדי לאפשר הרשאות מותאמות בתיקייה וכדי למנוע מתיקיות ההורה לדרוס הרשאות בתיקיית OpenSSH-Win64.
  4. בחר הוסף, מצא את קבוצת המנהלים Administrators ותן להם זכויות מלאות.
  5. לחץ הוסף, מצא את קבוצת Everyone ותן להם הרשאות לקריאה בלבד.
  6. בחר בתיבת הסימון החל הרשאות לכל תיקיית הילדים כדי להעביר את ההגדרות לכל הקבצים בתיקיית OpenSSH-Win64; לחץ החל.
  7. עכשיו נבדוק את ההרשאות הללו על ידי יצירת קובץ חדש בתיקיית OpenSSH-Win64. Windows צריכה לדרוש הרשאת מנהל.

ניתן לראות את כל השלבים הללו מוצגים גרפית למעלה.

restrict the OpenSSH-Win64 folder

ניהול ישיבות מנותקות עם Tmux

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

סשנים מנותקים הם בעיה תקינה עם SSH וממש יש להם פתרון ישיר. יש צורך ב־משולש טרמינל (tmux).

tmux מתייחס גם לראשי תיקרים של משולש טרמינל, וגם לשם של התוכנית עצמה

tmux הוא מנהל סשנים עבור SSH. הוא "מחזיק" בסשן אם יש ניתוק ושומר עליו ברקע. ניתן להתחבר מחדש לסשן הזה מאוחר יותר או אפילו ליצור מספר סשנים ולנסוע ביניהם.

כדי לנהל סשנים מנותקים עם tmux:

  1. בטרמינל של Linux, הורידו והתקינו את כלי tmux על ידי הרצת sudo zypper install -y tmux כפי שמוצג למטה:

אפשר גם להשתמש ב-YaST להורדת כלי tmux.

Tmux Utility

רוב ההפצות של Linux משתמשות במנהל חבילות שונה בשורת הפקודה. ב-OpenSUSE משתמשים ב־zypper, ב-Arch ב־pacman, ב-Ubuntu ב־apt, ב-Red Hat ב־dnf ו־yum. מזל טוב, התחביר של מנהלי החבילות הללו די דומה לאורך כל הקו.

2. על מחשב ה-Windows שלך, פתח קונסולת PowerShell והתחבר ב־SSH לשרת Linux שלך. המדריך ישתמש בשם משתמש homelab וב-IP של השרת Linux – 192.168.134.169.

ssh <username>@<ip address>

3. פתח את tmux על ידי הרצת הפקודה tmux לאחר התחברות. אתה אמור לראות סרגל ירוק בתחתית

4. הפעל פקודה שמפיקה טקסט כלשהו. אין קשר איזה פקודה, במדריך זה נעשה שימוש ב־neofetch. תוכל גם להריץ את ls.

5. התנתק מההפעלה על ידי סגירת PowerShell. פעולה זו מדמה התנתקות.

6. התחבר מחדש לשרת Linux שלך באמצעות SSH.

7. כעת התחבר מחדש להפעלה הישנה על ידי הפקודה tmux a. אתה אמור לראות עדיין את פלט הפקודה הקודמת של ls. ברוב פשוט, אין אובדן נתונים מההתנתקות!

תוכל לראות את כל השלבים הללו מוצגים גרפית למעלה.

Managing Disconnected Sessions with a Tmux

אם תנסה להריץ את תוכנת Midnight Commander בתוך tmux, עשוי להתברר שאין לך תמיכה בעכבר. ניתן לתקן זאת על ידי הרצת mc -x במקום.

הפעלת tmux בהתחברות

כברירת מחדל, tmux לא יהיה זמין בכל הפעלות SSH. ניתן לשנות זאת על ידי כפייה של tmux להתחבר להפעלת SSH שלך בכל פעם שאתה מתחבר.

בהנחה שאתה מחובר ב-SSH לשרת Linux שלך:

  1. פתח את תוכנת midnight commander באמצעות mc.

2. סמן את קובץ ה־.bashrc ולחץ על ערוך.

קובץ ה־.bashrc הוא סקריפט של מעטפת (שורה) שנפעל בכל פעם שאתה מתחבר דרך שורת הפקודה

3. הוסף את קטע קוד סקריפט המעטפת לתחתית קובץ הטקסט.

if [ -z "$TMUX" ]; then tmux attach -t default || tmux new -s default fi

4. לחץ על יציאה ושמור כשתתבקש.

5. בדוק את ההתחברות האוטומטית של tmux על ידי התנתקות מהפעלת SSH שלך וחיבור מחדש. תקבל רצועה ירוקה בתחתית באופן אוטומטי, המציינת שאתה מחובר להפעלת tmux!

זה רק נקודת התחלה של מה ש־tmux יכול לעשות, זו תוכנה מאוד עוצמתית לניהול משימות מרובות. אם תשאל כל מנהל Linux מה הפקודה הנפוצה ביותר שלו, זה כנראה יהיה tmux.

סיכום

זה מסיים את הפוסט האחרון בסדרת פוסטים בבלוג גבר מחלונות בעולם של Linux. נשאר מחכים לכתבות הבאות בבלוג ATA!

Source:
https://adamtheautomator.com/ssh-command-in-linux/