התחברות לשרת עם SSH ומפתחות הצפנה

במדריכים הקודמים ראינו צורה שבה אפשר להתחבר לשרת עם SSH, כאשר איבטחנו את החיבור באמצעות תוכנת fail2ban שמונעת מתקפת brute force.
ישנה שיטה נוספת להתחברות לשרת SSH, שנקראת "מפתחות הצפנה" (Key Authentication).
לשיטה זו 2 יתרונות לעומת חיבור SSH "רגיל" : ראשית, אחרי ההגדרה, כבר אין צורך בסיסמה, שנית, השיטה נחשבת בטוחה פי עשרות מונים לעומת SSH "רגיל".
מבוא קצרצר – מה הם בעצם מפתחות הצפנה ?
מפתחות הצפנה, זוהי שיטת הצפנה מידע, שבה יוצרים 2 קבצים = 2 מפתחות. מפתח אחד נקרא ציבורי, והמפתח השני נקרא מפתח פרטי. כל קובץ מכיל רצף תוים מסוים.
הקובץ עם המפתח הציבורי יושב על השרת, והקובץ עם המפתח הפרטי, יושב על המחשב האישי שלך.
כאשר אחד מהמפתחות אחראי רק על ההצפנה ואילו השני משמש רק לפענוח.
בצורה כזו, יוצרים מבחינה טכנולוגית מצב בדיוק כמו "מנעול ומפתח" כלומר, אם אין לך את המפתח הפרטי, אתה לא יכול למעשה להיכנס לשרת.
יתרון נוסף הוא גם, בעתיד, כאשר תחזיק מספר שרתים, תוכל לשים על כולם את אותו מפתח ציבורי, וכך תוכל להתחבר בקלות לכמה שרתים וירטואלים באמצעות אותו מפתח פרטי.
איך ליצור מפתחות הצפנה באמצעות PuttyGen ?
כדי ליצור מפתחות יש להוריד את תוכנת PuttyGen מהקישור הבא [ללא התקנה]
אין צורך בהתקנה, התוכנה היא קובץ exe בודד שמופעל ישר כאשר מפעילים אותו.
הפעל את PuttyGen
בחלק התחתון – בחר בשיטת ההצפנה שנקראת SSH-2 RSA
בשדה "Number Of bits" הקלד 2048 או 4096 (גדול יותר הוא טוב יותר, כלומר קשה יותר לפריצה).
לחץ על כפתור Generate
הזז את העכבר מתחת לפס ההתקדמות, התוכנה "מקליטה" את תנועות העכבר שלך, ויוצרת מהן מפתחות הצפנה. עשה זאת עד לסיום יצירת המפתחות.
המפתחות נוצרו
כתוב הערה, שתאפשר לך לזהות את המפתח בעתיד , בשדה "Key comment"
אופציונלית, אתה יכול להקליד סיסמא ולחזור עליה ב-2 שדות ה-passphrase, אבל זה ממש לא נחוץ, ועדיף לוותר על זה.
עכשיו לחץ על Save Public Key , תן שם לקובץ וזכור איפה שמרת אותו!
לחץ על Save Private Key, תן שם לקובץ וזכור איפה שמרת אותו.
חשוב לדעת : אחרי שתגדיר את המפתח הציבורי בשרת, תוכל להיכנס רק עם המפתח הפרטי, כלומר…אם תאבד אותו… לא תוכל להיכנס לשרת.
לחץ מקש ימני מתחת לשדה Public key for pasting into – ובחר Select All
כעת שוב פעם מקש ימני > Copy
שים לב : בגירסאות מסויימות של PuttyGen, הוא מייצר את המפתח הציבורי שמתחיל במילים "—- BEGIN SSH2 PUBLIC KEY …", אם אתה רואה שזה מה שהעתקת כרגע, זו טעות, המפתח שלך צריך להתחיל ככה "ssh-rsa AAAA ….".
עכשיו נשמור את המפתח הציבורי בשרת הוירטואלי.
שמירת המפתח הציבורי ב VPS
מפתח ציבורי נשמר בשרת בקובץ הזה ~/.ssh/authorized_keys
אם השרת שלך זה עתה הוקם, כנראה שהקובץ הזה לא קיים, ולכן ניצור אותו עכשיו
1. התחבר לשרת באמצעות Putty
2. הקלד את הפקודות הבאות
mkdir ~/.ssh
chmod 0700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 0644 ~/.ssh/authorized_keys
הסבר קצרצר על פקודות לינוקס שהקלדת:
הפקודה mkdir יצרה תיקיה חדשה.
הפקודה chmod, מעניקה לתיקיה הרשאות כתיבה, קריאה, הפעלה על ידי כל אחד, היות והמפתח הציבורי נגיש לכל user.
הפקודה touch יוצרת קובץ בשם authorized_keys ונותנת לו חתימת זמן.
ולבסוף הפקודה chmod מעניקה הרשאות לקובץ.
כעת פתח את הקובץ עם עורך טקסט כלשהוא, לצורך המדריך נשתמש ב-nano.
צריך לזכור לעשות זאת עם הרשאות ניהול, ולכן נשתמש במילה המקדימה sudo
sudo nano ~/.ssh/authorized_keys
עכשיו הדבק בתוך הקובץ את מה שהעתקת מ-PuttyGen, (כדי להדביק באמצעות Putty, לוחצים על מקש ימני של העכבר וזה מיד מדביק. שים לב שבגלל שהטקסט הזה ארוך מאוד, אתה תראה רק את סופו.
לחץ על ctrl+X ליציאה , ועל Y לשמירה.
כניסה לשרת באמצעות מפתחות ההצפנה שיצרנו עם Putty
הגיע הזמן להגדיר ב-Putty את מפתח ההצפנה הפרטי שלנו, ולהתחבר לשרת.
כיוון שב-Putty ניתן לשמור את ההגדרות בשם, נגדיר זאת פעם אחת, ובכל פעם אחר כך נוכל שוב להתחבר במהירות.
הפעל את Putty
בחר בצד שמאל במסך Session (בדרך כלל זה מסך הכניסה).
בשדה Host Name תקליד את כתובת ה-IP של ה VPS שלך.
בשדה Port תקליד את port הכניסה שלך. (אם שינית את פורט ברירת המחדל… זכור להקליד פה את הפורט שבחרת).
בסוג החיבור בחר SSH.
בתפריט בצד לחץ על DATA
בשדה auto login username – הקלד את שם המשתמש שלך לשרת.
בתפריט הצידי לחץ על SSH
בחלק בצד שנקרא Auth לחץ על כפתור Browse ומצא את קובץ המפתח הפרטי.
עכשיו חזור למסך Session, תן שם לכל ההגדרות האלו ולחץ על Save
מרגע זה אתה יכול להתחבר באמצעות מפתחות הצפנה.
עכשיו הגיע זמן לחסום את כניסת ה-SSH הרגילה לשרת הוירטואלי שלנו.
איך חוסמים כניסה SSH מבוססת סיסמה אל ה-VPS ?
אחרי שבסעיף הקודם בדקת וראית שהכל עובד תקין, הגיע זמן לחסום את הכניסה הרגילה. כדי שמעתה תוכל להיכנס לשרת רק אם המפתח הפרטי בידך.
קובץ ההגדרות ששולט על זה הוא /etc/ssh/sshd_config
פתח אותו בעורך הטקסט nano עם הרשאות מנהל
כלומר
sudo nano /etc/ssh/sshd_config
עכשיו תעבור על הקובץ, תמצא את 2 ההגדרות הבאות, ותדאג שהן יהיו no והן לא יהיו מסומנות עם # (כלומר הן לא יהיו נחשבות כהערה בלבד)
[…]
PasswordAuthentication no
[…]
UsePAM no
[…]
לחץ על ctrl+x ליציאה ועל Y לשמירה.
כעת נטען מחדש את ההגדרות של ה-SSH ששינינו
sudo reload ssh
וזהו, מרגע זה, הכניסה לשרת שלך מאובטחת לעילא ולעילא באמצעות מפתחות הצפנה.

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *