מדריך מהיר: חיבור לשרתים עם SSH באופן מאובטח

כך מתחברים למכונה מרוחקת עם מפתח פרטי וציבורי.

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

החיבור אל השרת השני נעשה באמצעות כניסה לטרמינל שלכם והקלדת הפקודה ssh עם שם המשתמש והכתובת של השרת המרוחק. למשל: ssh [email protected] לרספברי מקומי או ssh [email protected] עם שם המשתמש moshe לשרת cohen.com. בד"כ זה השלב שבו אנו נתבקש להקליד סיסמה – אם נקליד אותה כמו שצריך, אז נוכל להכנס לשרת ולעבוד עליו.

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

מה הבעיה? שסיסמה זה יכול להיות גם בעייתי מבחינת אבטחה וגם מעיק. סיסמה היא בעייתית – כי אפשר לגנוב אותה, לעשות לה brute force או, כמו שבדרך כלל קורה, אנו נוטים למחזר ססמאות ואז הן דולפות מאיזה אתר פח אחר ופתאום נוכלים מוצאים אותן. בנוסף, ססמה זה דבר מעיק גם אם אנו משתמשים במנהל ססמאות – כי צריך להקליד אותה ולזכור אותה.

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

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

יש SSH בחלונות

בחלונות, כרגיל, הכל טיפה יותר מסובך אבל בדגש על טיפה. בחלונות 10/11 צריך להתקין את open ssh client, שזה נעשה דרך ההגדרות של חלונות. נכנסים ל-settings, משם ל-Apps ואז מחפשים את Optional features ומפעילים את OpenSSH Client. זה הכל. במאמר הזה יש הסבר עם צילומי מסך אבל אמרו לי שזה ממש קל. יש גם את הסרטון הזה. שלושים שניות ואתם מסודרים.

סרטון התקנה על חלונות 11, עם חלונות 10 זה גם דומה מאוד.

מיקום המפתח הפרטי והציבורי

המפתחות הציבוריים והפרטיים נמצאים בתיקית ssh. המיקום שלה במק או לינוקס הוא:

 ~/.ssh

ובמערכת הפעלה חלונות פה:

C:\Users\<your_username>\.ssh

ניתן לייצר מפתח ציבורי/פרטי בקלות גם בחלונות וגם במק או לינוקס באמצעות הפקודה שמובאת כאן כדוגמא:

ssh-keygen -b 2048 -t rsa

הפקודה תיצור קובץ בשם id_rsa.pub ו-id_rsa (השם יכול להשתנות לבחירתכם). זה בסיומת pub הוא המפתח הציבורי (pub מלשון public).

לעתים אתם מקבלים מפתח פרטי בלבד מספק כלשהו (כמו אמזון). במקרה הזה הסיומת יכולה להיות pem שהיא סיומת כללית שמיועדת למפתחות. אפשר ליצור מפתח ציבורי מהמפתח הפרטי כמובן, אבל לא ההיפך.

חיבור עם SSH למכונה מרוחקת כמו רספברי פיי

אחרי שיש לנו את המפתח הציבורי והפרטי, אין קל מהוספת המפתח ל-SSH client שלנו כדי שנוכל להתחבר מרחוק. ראשית אנו נוסיף אותו למכונה המרוחקת באמצעות הפקודה:

ssh-copy-id -i ~/.ssh/id_rsa IP-OF-REMOTE-MACHINE

למשל:

ssh-copy-id -i ~/.ssh/id_rsa raspberrypi.local

ו… זהו. המכונה המרוחקת מוכנה

אז יש לנו מכונה מרוחקת שמוכנה לקבל את המפתח הציבורי שלנו. איך אנחנו מתחברים איתו ל-SSH? באמצעות קובץ config שנמצא בתיקית ה-ssh (בחלונות תצטרכו ליצור אותו – קובץ בשם config ללא סיומת). מדובר בקובץ טקסט שבו יש את ההגדרות של ה-SSH. נוסיף אליו הגדרה כזו:

Host raspberrypi.local
  HostName raspberrypi.local
  user pi
  IdentityFile ~/.ssh/id_rsa

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

ניתן בשלב זה למנוע חיבור עם סיסמה ל-SSH במכונה המרוחקת כדי להגדיל את ההגנה. שימו לב שאם אתם מאבדים את המפתח – אתם אבודים. אז לשיקולכם.

חיבור עם SSH לאמזון lighstail

כאשר אנו יוצרים מכונה עם lightsail, אנו יכולים להגדיר בתהליך היצירה מפתח ציבורי או להוריד את המפתח הפרטי ישירות מאמזון. כדי להוריד את המפתח הפרטי הדיפולטיבי שלכם – אתם יכולים להכנס לדף הזה בחשבון שלכם ולראות את כל המפתחות שלכם לפי איזורים. אפשר ליצור או להוריד.

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

cd ~/.ssh

ובמערכת הפעלה חלונות פה:

C:\Users\<your_username>\.ssh

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

chmod 400 ~/.ssh/your-key-name-eu-west-1.pem

ניתן ליצור ממנו מפתח ציבורי אגב (לצרכים אחרים) על ידי הפקודה:

ssh-keygen -y -f your-key-name-eu-west-1.pem > your-key-name-eu-west-1.pub

גם פה, אחרי שיש לנו את המפתח הפרטי, נוכל להשתמש בו בקובץ ה-config. קובץ שנמצא בתיקית ssh (אם יש לכם חלונות הוא לא יהיה שם, תצטרכו ליצור אותו – config ללא סיומת קובץ). הכניסו את הטקסט הזה – רק שנו את שם המכונה ואת שם הקובץ של המפתח הפרטי.

Host 6.38.20.20
  HostName 6.38.20.20
  user bitnami
  IdentityFile ~/.ssh/your-key-name-eu-west-1.pem

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

פוסטים נוספים שכדאי לקרוא

למפתחי ובוני אתרי אינטרנט

מדריך לשאילתות יעילות ל Chat GPT

כל אחד יכול לשאול את GPT, אבל אם תרצו לשאול אותו שאלות על תכנות – יש כמה שיטות וטיפים ליעל את העבודה מולו.

פתרונות ומאמרים על פיתוח אינטרנט

רינדור של קליינט סייד עם SSR

הסבר קצר על SSR מול רינדור קלאסי ולא. לא תמיד זה טוב להשתמש בו. אין כדור כסף שיכול לפתור הכל.

גלילה לראש העמוד