הגדרת SSH ו-PowerShell: הגדרת ל<קוחdi SSH ב-Wyindows>הגדרת תיקלוט SSH ו-PowerShell: הגדרת לקוח SSH למערכת הפעלה Windows

אחת פעם, היית מוגבל בסוגי המחשבים שאליהם היית יכול להתחבר באמצעות Windows PowerShell באמצעות התחברות PowerShell Remoting. מאחר ש- PowerShell Remoting תמך רק ב- ספק WsMan, הסיכויים שלך להתחבר למחשבים הפועלים ב-Linux, לדוגמה, היו אפסיים. אך בשנת 2015, מיקרוסופט הציעה תמיכה ב-SSH ב- Windows והביאה לפני יתרונות רבים ולבסוף הרשת לך להשתמש ב-SSH ו-PowerShell יחד.

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

פוסט זה על SSH ו-PowerShell הוא חלק מסדרת הבלוגים #PS7Now. הקפידו לבדוק את כל התורמים האחרים בסדרה זו בתחתית פוסט זה.

לפני שתתחיל

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

  • Windows 10 – כל הדוגמאות ישתמשו ב- Windows 10 Build 1903. הדוגמה תהיה באותו דומיין כמו שרת Windows רחוק.
  • PowerShell v6+ מותקן על Windows 10 – כל הדוגמאות ישתמשו ב- PowerShell 7 RC2.
  • A remote SSH server – All examples will use a Windows Server SSH machine. If you’re connecting to a Linux machine, you can skip the server setup steps.
  • יש לוודא כי יש TCP פורט 22 זמין על השרת הרחוק

הגדרת קונסולת SSH (Windows 10)

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

הוסף את תיקיית OpenSSH למשתנה הסביבה PATH

OpenSSH מותקן מראש על Windows 10 אך לפעמים יש צורך בעזרה קטנה כדי שיעבוד עם PowerShell Remoting. אם כבר ניסית להשתמש ב-Enter-PSSession, לדוגמא, כדי להתחבר למערכת SSH רחוקה ונתקלת בשגיאה שמופיעה למטה, עליך לוודא שהנתיב לביצוע התוכנית הניתנת להרצאה (ssh.exe) כלול במשתנה הסביבה PATH environment variable.

Enter-PSSession : An error has occurred which PowerShell cannot handle. A remote session might have ended.

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

Adding OpenSSH folder path

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

Environment Variables in System Properties

בחלון משתנים סביבתיים, תחת משתנים מערכתיים, בחר ב־Path ולחץ על ערוך.

System Variables in the Environment Variables

בחלון ערוך משתנה סביבתי, לחץ על חדש ואז הזן את הנתיב שבו נמצא הקובץ הנפתח ssh.exe. למדריך זה, הנתיב הוא C:\Program Files\OpenSSH כפי שמוצג למטה. לאחר הזנה, לחץ על אישור פעמיים כדי לשמור את הערך החדש.

Editing Environment Variable

ציין את התת־מערכת של SSH

כעת עליך לציין את התת־מערכת של SSH שבה PowerShell יקרא כאשר מתחברים דרך SSH לשרת Windows מרוחק. אם לא תספק לפוורשל איזו תת־מערכת להשתמש, בהכרח תקבל את השגיאה הבאה:

Enter-PSSession : The background process reported an error with the following message: The SSH client session has ended with error message: subsystem request failed on channel 0.

שים לב כי אם אינך מתחבר למכונת שרת Windows, לא תצטרך לבצע את השלבים הללו.

בשרת Windows מרוחק, פתח את הקובץ C:\ProgramData\ssh\ssh_config. גלול למטה לקטע override default of no subsystems שבקובץ ssh_config. הקטע ייראה כמו בצילום המסך למטה.

Override Default of no Subsystems

מתחת לשורת Subsystem הקיימת, הוסף את תת־המערכת של PowerShell באמצעות השורה הבאה:

Subsystem	powershell pwsh.exe -sshs -NoLogo -NoProfile

עכשיו שמור את קובץ ssh_config ואחרי כך הפעל מחדש את שירות ה-sshd בשרת Windows מרוחק כפי שמוצג למטה.

Get-Service -Name sshd | Restart-Service

לאחר האתחול מחדש של השירות, אתה כעת יכול להתחבר דרך SSH ו-PowerShell.

התחברות דרך PowerShell ו־SSH

עכשיו שהתקנת את התצורה, נסה לבדוק את PowerShell Remoting.

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

בברירת מחדל, PowerShell Remoting עדיין משתמש ב-WsMan. כדי לדרוס את ברירת המחדל, השתמש בפרמטר SSHTransport כדי לציין שאתה רוצה להתחבר דרך SSH ו-PowerShell.

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

Creating SSH Private Key

אז יתבקש ממך להזין את סיסמת המשתמש שאתה מחובר איתה כעת.

שימו לב כי בדוגמה זו הלקוח של Windows 10 ושרת SSH של Windows נמצאים באותה תחום של Active Directory. כברירת מחדל, פעילות רחוקה של PowerShell תנסה לאמת עם המשתמש שנכנס. תוכלו גם להשתמש בפרמטר Credential כדי לציין שם משתמש שונה וסיסמה.

לאחר שמספקים את הסיסמה, עליך להיות בדלת הפעל של PowerShell המוכרת.

Powershell Remoting Prompt

כעת צא מההפעלה עם exit ונסה New-PSSession. שים לב שבשימוש באותם פרמטרי HostName ו־SSHTransport כמו קודם, ה־Transport כעת מופיע כ־SSH.

עדיין ניתן גם להשתמש ב־WsMan כפרוטוקול התחברות בעזרת פרמטר ה־ComputerName בלי להשתמש בפרמטר ה־SSHTransport.

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

New PSSession Showing up SSH

אל תשכח לנקות את ההפעלות הפתוחות שלך עם Get-PSSession | Remove-PSSession!

סיכום

עכשיו אתה צריך לדעת כיצד להגדיר גם את Windows 10 וגם את שרת Windows להשתמש ב־SSH עם פעילות רחוקה של PowerShell. לאחר הגדרה, ההבדל היחיד בין השימוש ב־WsMan כפרוטוקול התחברות ובשימוש ב־SSH הוא כמה פרמטרים!

אם ברצונך ללמוד עוד על PowerShell ו-SSH, הקפד לבדוק את פיקודי PowerShell Remoting דרך SSH מאמר התיעוד של Microsoft.

#תורמים_PS7Now

פוסט זה היה חלק מסדרת פוסטים על PowerShell 7 של תורמים מעולים שתראה למטה. הקפד לבדוק את הפוסטים שלהם ולראות מה הם עושים בבלוגים שלהם!

Author Twitter Blog
Josh King @WindosNZ https://toastit.dev/
Adam Bertram @adbertram https://adamtheautomator.com/
Jonathan Medd @jonathanmedd
Thomas Lee @doctordns https://tfl09.blogspot.com/
Prateek Singh @singhprateik https://ridicurious.com
Dave Carroll @thedavecarroll https://powershell.anovelidea.org/
Dan Franciscus @dan_franciscus https://winsysblog.com/
Jeff Hicks @jeffhicks https://jdhitsolutions.com
Josh Duffney @joshduffney http://duffney.io/
Mike Kanakos @MikeKanakos https://www.networkadm.in/
Tommy Maynard @thetommymaynard https://tommymaynard.com//
#PS7Now Contributors

Source:
https://adamtheautomator.com/powershell-ssh/