לדלג לתוכן

2.5 פרוטוקול SSH הרצאה

פרוטוקול SSH - Secure Shell

מה זה SSH?

פרוטוקול SSH (Secure Shell) הוא פרוטוקול תקשורת מאובטח המיועד לשימוש בטווח רחב של פעולות, כולל חיבור למחשב מרחוק, העברת קבצים, ביצוע פקודות מערכת, ועוד. SSH הוא אחת מהדרכים הפופולריות ביותר לביצוע חיבור מאובטח בין מחשבים על גבי רשת לא מאובטחת כמו האינטרנט. SSH מחליף את הפרוטוקולים הישנים והמועדים יותר כמו Telnet ו- RSH, ומספק את כל הפונקציות שלהם תוך שמירה על אבטחת המידע.

למה SSH חשוב?

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

פעולות עיקריות עם SSH

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

1. חיבור טרמינל מרחוק (Remote Terminal Access)

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

הפקודה הבסיסית להתחברות למחשב מרוחק באמצעות SSH היא:

ssh user@192.168.1.2

בפקודה זו, user הוא שם המשתמש במחשב המרוחק ו-192.168.1.2 הוא ה-IP של המחשב שאליו אנחנו רוצים להתחבר. לאחר החיבור נצטרך להזין את הסיסמא המתאימה.

2. העברת קבצים (SFTP)

פרוטוקול SSH כולל גם את פרוטוקול SFTP (SSH File Transfer Protocol), המאפשר לנו להעלות ולהוריד קבצים בצורה מאובטחת בין מחשבים. בצורה כזו, ניתן לעבוד עם קבצים מרוחקים ולבצע העברות קבצים ללא חשש שהמידע ייגנב או ייחשף בדרך.

להעלות קובץ לשרת:

scp "C:\Users\amitp\file.txt" user@192.168.1.2:"/home/user/"

בפקודה זו, scp הוא הכלי שמשתמש ב-SSH כדי להעביר קבצים, user@192.168.1.2 הוא שם המשתמש וה-IP של השרת המרוחק, ו-/home/user/ הוא המיקום אליו יועלה הקובץ.

להוריד קובץ משרת:

scp user@192.168.1.2:"/home/user/file.txt" "C:\Users\amitp\file.txt"

בפקודה זו, קובץ שנמצא בשרת יועבר למחשב המקומי שלנו.

3. שימוש עם פקודות מרחוק

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

ssh user@192.168.1.2 "ls -l"

בפקודה זו, המחשב המרוחק יריץ את הפקודה ls -l ויחזיר את התוצאה אל המחשב המקומי.

יתרונות של SSH

  1. הצפנה מאובטחת: כל התקשורת בין הלקוח לשרת מוצפנת, מה שמונע האזנה למידע או גניבה.
  2. אימות חזק: אפשרות לאימות באמצעות מפתחות הצפנה במקום סיסמאות, דבר שמגביר את האבטחה.
  3. גישה למערכות מרוחקות: SSH מאפשר למשתמשים ומנהלי מערכת להתחבר ולבצע פעולות מרחוק על מערכות מבלי להיות נוכחים פיזית ליד המחשב.
  4. העברת קבצים: השילוב עם SFTP מאפשר העברת קבצים בצורה מאובטחת.
  5. חיבור מאובטח לשרתים על רשתות לא מאובטחות: באמצעות SSH, אפשר להבטיח חיבור מאובטח גם על רשתות פתוחות כמו Wi-Fi ציבורי.

איך פועל האימות ב-SSH?

ל-SSH יש שני סוגים של אמצעי אימות:

  1. אימות עם סיסמה: זוהי שיטה פשוטה בה אנו מספקים סיסמא בעת החיבור.
  2. אימות עם מפתחות ציבוריים/פרטיים: שיטה זו נחשבת לבטוחה יותר, שבה המשתמש יוצר זוג מפתחות (ציבורי ופרטי). המפתח הציבורי מונח על השרת והלקוח מחזיק במפתח הפרטי. כאשר ננסה להתחבר לשרת, המערכת בודקת אם המפתח הפרטי תואם למפתח הציבורי על השרת, מה שמבטיח את זהותנו.

כיצד להגדיר חיבור SSH עם מפתח פרטי?

  1. יצירת זוג מפתחות:
ssh-keygen -t rsa -b 2048

הפקודה הזו תיצור זוג מפתחות חדש. 2. העברת המפתח הציבורי לשרת:

ssh-copy-id user@192.168.1.2

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

הגדרות נוספות ב-SSH

  • הקשחת השרת: אפשר להקשיח את שרת ה-SSH על ידי חיבור רק למשתמשים מסוימים, הפעלת אימות עם מפתחות פרטיים בלבד, חסימת גישה עם סיסמאות ועוד.
  • סשן שורד (Persistent Sessions): יש אפשרות לשמור את החיבור עם שרת SSH פתוח לאורך זמן, גם אם החיבור ינותק, באמצעות כלים כמו tmux או screen.

שימושים נפוצים

  1. ניהול שרתים מרוחקים: SSH הוא הבחירה הראשונה של מנהלי מערכת כדי לנהל שרתים מרוחקים.
  2. העברת קבצים בין מחשבים: באמצעות SCP ו-SFTP, ניתן להעביר קבצים בצורה מאובטחת בין מחשבים.
  3. הרצת פקודות מרחוק: SSH מאפשר להריץ פקודות על שרת מרוחק מבלי להתחבר אליו בצורה אינטראקטיבית.
  4. חיבור מאובטח לשרתים על רשתות לא מאובטחות: באמצעות SSH, אפשר להבטיח חיבור מאובטח גם על רשתות פתוחות כמו Wi-Fi ציבורי.

סיכום

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