מדריך בסיסי ל-SSH
המטרה של המדריך הזה היא להכיר לכם את ה-`ssh cli` דרך דוגמאות בסיסיות שמכסות 80% מהצורך.

המטרה של המדריך הזה היא להכיר לכם את ה-ssh cli דרך דוגמאות בסיסיות שמכסות 80% מהצורך.
מה זה בכלל SSH?
SSH ראשי תיבות של (S)ecure (SH)ell. זה פרוטוקול, קבוצת כללים לתקשורת בין מחשבים, שנבנה במיוחד בשביל גישה ל-shell.
באמצעותו אתם יכולים להתחבר בבטחה למכונה מרוחקת ולהריץ פקודות shell כמו ls -la.
בדיוק כמו כל פרוטוקול אחר, בלוטות’, טורנט, tcp/ip - הוא חסר תועלת בפני עצמו, ודורש לקוח (תוכנה) אמיתי שמממש את הפרוטוקול. אז בדיוק כמו שאתם משתמשים ב-qbittorrent כדי לממש את פרוטוקול הטורנט, אתם משתמשים ב-openssh כדי לממש ssh. יש כיום לקוחות בממשק גרפי כמו cyberduck, filezilla ורבים נוספים, אבל לכל עבודה רצינית תמצאו את עצמכם חוזרים ל-openssh. בואו נתקין אותו.
התקנת לקוח SSH
קחו את מנהל החבילות האהוב עליכם והריצו את פקודת ההתקנה
# Ubuntu/Debiansudo apt install openssh-client
# macOS (אם חסר)brew install openssh
# Windows (בחרו אחת)winget install OpenSSHchoco install opensshמזל טוב! השלב הראשון הושלם. הריצו ssh בטרמינל כדי לראות פקודות זמינות, ו-man ssh כדי לקרוא את המדריך.
יצירת מפתח ה-SSH הראשון שלכם
השלב הבא הוא להגדיר את הסיסמה שלכם, ובכן, “מפתח” ליתר דיוק.
SSH משתמש בזוג מפתחות שנקראים:
- מפתח פרטי, זה נשאר על המחשב שלכם
- מפתח ציבורי, שאותו אתם שמים על השרת
הריצו את הפקודה כדי ליצור את שניהם:
# האימייל הוא רק לצורך זיהויssh-keygen -t ed25519 -C "your-email@example.com"ssh-keygen מגיע יחד עם ה-cli של openssh אז אין צורך להתקין שום דבר נוסף
-t מציין את סוג ההצפנה
-C מוסיף הערה, בדרך כלל האימייל שלכם, כדי שתוכלו להבדיל בין המפתחות שלכם בהמשך
אתם יכולים להגדיר את המשתנים האלה ידנית ופשוט להריץ ssh-keygen
איך עובד האמון ב-ssh?
כדי לבצע פקודות בצורה בטוחה (ה-S הראשונה, זוכרים?) צריך לבסס אמון בין שני מפתחות. השרת שלכם מחזיק את המפתח הציבורי, אתם מחזיקים את הפרטי.
לחיצת היד נראית ככה:
- לקוח ה-ssh שלכם מבקש מהשרת להתחבר.
- השרת מגיב עם “אתגר” ומבקש מכם לחתום על נתונים מסוימים.
- הלקוח שלכם חותם עליהם עם המפתח הפרטי ושולח את התשובה בחזרה.
- השרת מוודא את התשובה מול המפתח הציבורי.
- הלפטופ דופק בדלת
- השרת שולח אתגר אקראי
- המפתח הפרטי חותם עליו
- המפתח הציבורי בודק את החתימה
$ ssh user@server שרת: תחתום על זה ← 7c2e91af לפטופ: חתמתי ← 3b0f6d2a שרת: תואם ל-id_ed25519.pub Welcome to Ubuntu 24.04 LTS
שימו לב שזה דורש מהשרת שלכם להחזיק את המפתח הציבורי שלכם! בואו ניתן לו אחד.
התחברות למכונה מרוחקת
עכשיו כשיש לכם מפתח ssh משלכם, הגיע הזמן להשתמש בו. לשלב הבא תצטרכו לדעת:
- כתובת ה-IP של השרת שלכם
- שם המשתמש
- הסיסמה
עכשיו הריצו את הפקודה הבאה כדי להעתיק את המפתח הציבורי שלכם לשרת. כמובן, החליפו בפרטי ההתחברות האמיתיים וחכו שהפקודה תבקש מכם סיסמה.
ssh-copy-id username@server-ip# מגיע יחד עם לקוח open-sshאתם יכולים גם לעשות את החלק הזה ידנית, על ידי העתקת המפתח הציבורי לקבצי השרת אם מתעוררת בעיה כלשהי. עוד על זה בסעיף הבא.
ואל דאגה, תצטרכו את הסיסמה רק בפעם הזאת. ברגע שהמפתח קיים על המכונה היעד, ההתחברות הבאה תצטרך רק לציין את שם המשתמש והמיקום, והלקוח יענה אוטומטית על האתגר בשבילכם! מגניב, נכון?
אתם יכולים לפשט את זה עוד יותר באמצעות alias, עוד על זה כאן
לעשות את זה ידנית
הריצו את הפקודות הבאות בסדר
# העתיקו את תוכן המפתח הציבוריcat ~/.ssh/id_ed25519.pub # הריצו את זה כדי לראות את המפתח הציבורי על המכונה שלכם
# התחברו לשרת באמצעות הסיסמה שלכםssh username@server-ipmkdir -p ~/.ssh # בדיוק כמו במחשב שלכם, השרת צריך תיקיית .sshecho "paste-public-key-here" >> ~/.ssh/authorized_keys # זה ייצור קובץ authorized_keys עם המפתח שלכם בפניםchmod 600 ~/.ssh/authorized_keys # שנו הרשאות כדי שהשרת יוכל לגשת לקובץchmod 700 ~/.ssh # שנו הרשאות כדי שהשרת יוכל לגשת לתיקייהזה אולי נראה קשה יותר, אבל בעיקרון אתם פשוט מתחברים לשרת שלכם ומדביקים את המפתח
שינוי הביטוי הסודי של המפתח שלכם
בדרך כלל ssh-keygen מוסיף ביטוי סודי (passphrase) למפתח. זו פרקטיקה טובה מכיוון שהמפתח נשמר כטקסט רגיל על המחשב שלכם. אבל זה מעצבן ואני לא משתמש בזה. אז אם כבר יש לכם מפתח ssh מקודם, ואתם רוצים להשתמש בו בלי להקליד את הביטוי הסודי בכל פעם, אתם יכולים להחליף את הביטוי הסודי כמוצג למטה
# מפתח ברירת המחדלssh-keygen -p
# מפתח ספציפיssh-keygen -p -f ~/.ssh/custom_key_nameAlias ל-SSH
כדי להפוך את החוויה לנעימה עוד יותר, הוסיפו alias לשרת שלכם. מצאו את מיקום קובץ ההגדרות של SSH, בדרך כלל בתיקיית .ssh:
vim ~/.ssh/configהגדירו את המארח (host):
# alias פשוטHost myserver HostName 192.168.1.100 User johnאחרי זה תוכלו פשוט להריץ:
ssh myserverולהתחבר מיידית!
ראו גם: העברת חשבון cPanel משורת הפקודה ותעודת SSL חינמית עם Certbot, שני דברים שתעשו ברגע שתהיו בפנים.
תגובות
התגובות נשמרות ב-GitHub Discussions (דרך giscus), אז כדי להצטרף לשיחה צריך חשבון GitHub.