PracticU

אימות ב-SSH עם Private Key

בלי כתוביותעם כתוביות
PracticU › קורס לינוקס למתקדמים - הסמכה בינלאומית - Linux - Red Hat - RHCSA / RHCE › אימות ב-SSH עם Private Key
מילון מושגים:
אימות - תהליך שמוודא שהמשתמש או המערכת הם מי שהם טוענים שהם, בדרך כלל באמצעות סיסמה, קוד או תעודה.
SSH - פרוטוקול לחיבור מרוחק ומוצפן למחשב, בעיקר לשרתי Linux, לצורך ניהול דרך שורת הפקודה.
מפתח פרטי - המפתח הסודי בהצפנה אסימטרית, שנשמר אצל בעליו בלבד ומשמש לפענוח או לחתימה דיגיטלית.
מפתח ציבורי - המפתח הגלוי בהצפנה אסימטרית, שאפשר לחלוק עם כולם, ומשמש להצפנה או לאימות חתימה.
root - משתמש העל במערכות Linux, בעל הרשאות מלאות לכל פעולה. גם הרמה העליונה בעץ של תיקיות או נתונים.
תיקייה - מכל במערכת הקבצים שמשמש לארגון קבצים ותיקיות אחרות בתוך מבנה היררכי.
RSA - אלגוריתם הצפנה אסימטרי נפוץ, המבוסס על זוג מפתחות ציבורי ופרטי, לשם הצפנה וחתימה דיגיטלית.
תהליך - מופע של תוכנה שרצה בזיכרון, עם הקוד, הנתונים והמשאבים שהוקצו לה על ידי מערכת ההפעלה.

אימות ב-SSH עם Private Key
בשיעור מוסבר איך מתחברים ב-SSH בלי להקיש סיסמה בכל פעם, בעזרת זוג מפתחות: מפתח ציבורי שמועתק לשרת, ומפתח פרטי שנשאר אצלנו.
השלבים העיקריים
1. אישור שרת לראשונה: בחיבור הראשון ה-SSH מציג טביעת אצבע של השרת ושואל אם לסמוך עליו. התשובה נשמרת בקובץ known_hosts, ואחר כך ה-SSH לא שואל שוב.
2. התחברות עם סיסמה: החיבור מבקש סיסמה למשתמש שצוין. בהרצאה מוצג שהמשתמש יוני לא קיים בשרת, ולכן החיבור נכשל, ומנסים חיבור כ-root.
3. יצירת מפתחות: הפקודה ssh-keygen יוצרת מפתח פרטי ומפתח ציבורי בתיקייה ~/.ssh. הקובץ id_rsa הוא המפתח הפרטי, ו-id_rsa.pub הוא הציבורי. אפשר לתת סיסמה למפתח הפרטי, כדי שגם אם הקובץ יגנב הוא לא יהיה שמיש.
4. העתקת המפתח הציבורי: הפקודה ssh-copy-id מתחברת לשרת, ומוסיפה את המפתח הציבורי לקובץ authorized_keys של המשתמש שם.
5. התחברות בלי סיסמה: אחרי ההעתקה החיבור עובד בלי הקלדת סיסמה, כי השרת מזהה את המפתח הפרטי שלנו.
איך זה עובד
המפתח הפרטי נשאר במחשב שלנו בלבד, והמפתח הציבורי הוא מה שמזהה אותנו בשרת. השרת בודק שיש לנו את המפתח הפרטי המתאים, בלי שהוא עצמו מופיע בתהליך.
טעויות נפוצות
- אם המשתמש לא קיים בשרת, החיבור נכשל גם אם הסיסמה נכונה.
- המפתח הפרטי אסור להעביר לאף אחד. רק המפתח הציבורי מועתק לשרתים.
שימו לב
האימות בעזרת מפתחות מתאים במיוחד לתוכנות שרצות בלילה, שאי אפשר להקיש להן סיסמה ידנית.
לחץ כאן להורדת הורדת קבצי Script של לינוקס שהיו בסרטים
מילון מושגים:
דיסק - התקן לאחסון קבוע של נתונים, כמו כונן קשיח (HDD) או כונן מבוסס זיכרון מהיר (SSD).
תיקייה - מכל במערכת הקבצים שמשמש לארגון קבצים ותיקיות אחרות בתוך מבנה היררכי.
מחיצה - חלוקה לוגית של דיסק פיזי לאזורים נפרדים, שכל אחד מתפקד כאילו הוא כונן עצמאי.
זיכרון - רכיב מהיר ונדיף שבו המחשב שומר נתונים ותוכניות בזמן ריצתם. תוכנו נמחק עם כיבוי המחשב.
דומיין - תחום ניהולי משותף של מחשבים ומשתמשים ברשת ארגונית, המנוהל מרכזית. גם שם ייחודי של אתר באינטרנט.
אימות - תהליך שמוודא שהמשתמש או המערכת הם מי שהם טוענים שהם, בדרך כלל באמצעות סיסמה, קוד או תעודה.
Active Directory - שירות מדריך של מיקרוסופט לניהול מרכזי של משתמשים, מחשבים והרשאות ברשת ארגונית מבוססת דומיין.
GPO - אובייקט מדיניות קבוצתית ב-Active Directory, שמכיל הגדרות ומדיניות המוחלות על משתמשים ומחשבים.


מבנה ושמות דיסקים ומחיצות בלינוקס:


(Sda (disk0): זה הדיסק הפיזי הראשון (SATA DISK)

(Sda1,Sda2 (Partitions in disk): אלו הן המחיצות בתוך הדיסק הפיזי הראשון.

(Sdb (disk1): זה הדיסק הפיזי השני כמו בוינדוס Disk1

(Sdb1,Sdb2 (Partitions in disk): אלו הן המחיצות בתוך הדיסק הפיזי השני.

מחיצת השורש הראשונה:

וינדוס: C

לינוקס: /

מחיצות נוספות:

וינדוס: D: / E:

לינוקס: /data /example כמו תיקיות.

הערה: בתהליך ההתקנה יוצרים מחיצה נוספת לזיכרון הווירטואלי שנקראת SWAP

מטרת צירוף לינוקס לדומיין הינה לאימות משתמשים מתוך Active Directory בלבד ואין GPO  ללינוקס דרך AD.


הוכן ע"י התלמיד המצטיין: אברהים אבו שיכה

פרקי ההרצאה: אימות ב-SSH עם Private Key

  1. 00:00

    כניסה ל-SSH בלי סיסמה בכל פעם

  2. 00:38

    אימות טביעת האצבע של השרת

  3. 01:32

    התחברות עם משתמש root

  4. 03:16

    הבעיה: סיסמה בכל חיבור

  5. 04:14

    קובץ known_hosts ותיקיית .ssh

  6. 04:53

    בחירת סיסמה להצפנת המפתח הפרטי

  7. 05:46

    קובץ ה-Private Key וקובץ ה-Public Key

  8. 06:22

    העתקת המפתח הציבורי עם ssh-copy-id

תמלול ההרצאה: אימות ב-SSH עם Private Key

הטקסט המלא של הדקות הראשונות בהרצאה «אימות ב-SSH עם Private Key» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:03

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

  2. 00:27

    Key שאיתו אני אתחבר בואו נראה איך עושים את כל זה ואיך עובד SSH בואו נתחיל מזה שנפתח לנו את הטרמינל ונתחיל להריץ כל מיני פקודות נתחיל מזה שאנחנו רוצים להתחבר ב-SSH לאיזשהו מחשב אחר נניח יש לי פה מכונה אחרת שהכתובת שלה זה 10-100-102-201 הוא שואל אותי קודם כל האם אתה בטוח שזאת

  3. 00:57

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

  4. 01:10

    אני פעם אחת אומר לו yes, יותר הוא לא ישאל אותי, הוא ילמד שזאת המכונה הנכונה, ושואל אותי עכשיו את הסיסמה.

  5. 01:19

    לפני כן אנחנו רואים שמה הוא כותב? הוא פרמנטלי עדד, הוא הוסיף לתמיד ש-201 הוא ברשימה של מאושרים, ויש לו את הפינגרפרינט הזה. עוד מעט נראה את הרשימה הזאת.

  6. 01:35

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

  7. 02:13

    אז הוא ינסה להתחבר לא תחת יוני אלא תחת רות ושימו לב, הוא ישר מבקש ממני את הסיסמה הוא לא שאל אותי האם אני בטוח שאפשר להתחבר אני נותן לו את הסיסמה ואני בסנטו S71 במכונה השנייה מחובר למכונה ההיא, אוקיי?

  8. 02:35

    איך אתם יודעים שהתחברתי למכונה ההיא, נניח ה-F-Config, אני מריץ Ctrl-L ואתם רואים שאני במכונה 201, אני עושה אקזיט מריץ פקודה כמו ifconfig רק IP address show שזאת הפקודה החדשה ואני רואה שבמקומי אחרי האקזיט אחרי שרצתי פקודת אקזיט ונסגר לי החיבור בIP address show אני יכול לראות שהכתובת של הכרטיס רשת שלי זה 154 וההוא היה 201 אז ראינו שהssh עובד רק יש איתו בעיה כל פעם

  9. 03:16

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

  10. 03:30

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

  11. 03:46

    cd.ssh ls-l ואנחנו רואים שיש פה קובץ שנקרא non-host. בואו נעשה עליו cut. אני לוחץ קונטרול L מי שרוצה לדעת קאט על הקובץ ואנחנו רואים שה-201 כתוב פה בתוך טקסט אז כן קאט זה לראות את הטקסט שלו כאשר הנה זה החתימה של הקובץ כך הוא יודע שה-201 זה באמת השרת הזה ולא מישהו אחר כשהוא

  12. 04:16

    רואה שזה זהה הוא לא שואל אותי האם אתה בטוח שאתה מתחבר לשרת הנכון אז יש קובץ שנקרא knownhost יפה מאוד עכשיו אנחנו רואים פה שיש לנו את בקובץ הוסט אנחנו רוצים לייצר מפתחות פאבליק ופרייבט קי אוקיי אז אנחנו נעשה פקודה ssh kgen שייצור לי מפתח פרטי ומפתח ציבורי למעשה פרייבט קי ופאבליק קי הוא שואל אותי איפה אני רוצה לאחסן אותם ואני אומר שתהיה תיקיית ברירת

  13. 04:53

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

  14. 05:23

    צריך הוא מבקש סיסמה עוד פעם אני עושה אנטר ריק וסיימנו מה קיבלנו פה? קיבלנו פה עכשיו תיקייה חדשה שנקראת IDRSA לא תיקייה קובץ חדש IDRSA שזה ה-Private Key ו-IDRSA Pub שזה ה-Public Key.

  15. 05:46

    בואו נראה את שניהם. בואו נעשה cut IDRSA ואנחנו רואים פה שזה ה-Private Key שלי. אתם רואים? cut IDRSA זה בעצם ה-Private Key שלי.

  16. 06:04

    יפה מאוד. בואו נעשה cut עכשיו לקובץ IDRSA.Pub. נראה את ה-Public Key שלי, זה ה-Public Key שלי. וה-None Host כבר ראינו מה יש לו בפנים, מי מאושר, כן?

  17. 06:20

    אז שה-201 זה החתימה שלו. מה נשאר לי לעשות? אז יש לי עכשיו בתיקייה ls-la. מה שנשאר לי לעשות, לקחת את ה-publicy הזה ופשוט להעתיק אותו לשרת השני.

  18. 06:33

    פשוט להעתיק אותו. אני יכול לעשות copy-paste בכל מיני שיטות. במקום להסתבך, החבר'ה של ssh כתבו איזשהו סקריפט נחמד.

  19. 06:46

    בואו נראה את הסקריפט הזה אם אתם רוצים. הוא נמצא ב-usr-bin-ssh-copy-id זה הסקריפט שבעצם, בואו ניכנס ב-vi זה הסקריפט שיודע להעתיק את ה-publicy למקום הנכון בשרת היעד הוא פותח ssh לשרת היעד ומעתיק לשם את הקובץ אז אנחנו יכולים לראות שהקובץ הזה, הנה אתם יכולים לראות שהקובץ הזה כתוב ב-bash איזה סקריפט שכתוב ב-bash ויש פה הרבה הרבה דברים.

  20. 07:27

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

לקורס המלא: קורס לינוקס מתקדם אונליין

ההרצאה הקודמת: הסבר נוסף על SSH

ההרצאה הבאה: פקודות בסיסיות לכרטיס רשת בלינוקס

הרצאות קשורות מקורסים אחרים

  • AZURE SSH
  • הגדרת SSH
  • משתנה ססטי ו-Private ב-NodeJS
  • אימות עם סמס - MFA

קורסים נוספים במסלול

  • קורס AWS - ניהול מכונה וירטואלית בענן
  • קורס Terraform - DevOps - Azure & AWS
  • קורס קוברנטיקס - Kubernetes
  • קורס Docker - עם Swarm Cluster
  • קורס DevOps - Ansible
  • קורס PowerShell