SSH, או מעטפת מאובטחת, היא מעטפת מאובטחת המשמשת ל- גישה מרחוק מכל מיני מכשירים לשרתים, דרך ערוץ מנהרה ומוגן על ידי הצפנה, המעניק לו אבטחה המונעת, או לפחות מקשה ביותר, כי צדדים שלישיים יכולים ליירט את שם המשתמש או הסיסמה. במקרה של * Nix, יש לנו פרוטוקול זה זמין דרך OpenSSH, קבוצה של פתרונות שרת לקוח הזמינים בכל הפצות לינוקס ובפלטפורמות קשורות כגון * BSD.
כעת, אם SSH מציע לנו רמת אבטחה מעולה, מדוע שנרצה להשתמש בה ללא צורך להזין סיסמה? יכולות להיות כמה סיבות, אך אחת שבדרך כלל בולטת כמחולל היא הצורך להיכנס מרחוק דרך סקריפטים ולבצע משימות של משתמש-על, וכי כידוע לא מומלץ להכניס את הנתונים לאף סקריפט. כדי לפתור בעיה זו אנו הולכים לראות כיצד ליצור מפתחות SSH כדי להיות מסוגל להתחבר מרחוק ללא צורך בסיסמה.
זה מחייב אותנו ליצור מפתח ציבורי ומפתח פרטי: הראשון יאוחסן בשרת אליו אנו ניגשים וכפי ששמו מצביע על כך אנו יכולים לשלוח או לשתף אותו, והשני יאוחסן במכשיר (מחשב, טלפון חכם, טאבלט) ממנו אנו הולכים לגשת לשרת האמור, והוא חייב להיות נשמר בזהירות רבה ומשמש רק אותנו או אנשים שאנחנו סומכים עליהם.
בשל האמור בפסקה הקודמת, חשוב להעיר כי פיתרון מסוג זה דורש אחריות גדולה מאוד בטיפול במכשירים מהם אנו הולכים להיכנס לשרת, והוא שמי שיש לו גישה אל הם יכולים להזין אותה ללא צורך לדעת את הסיסמה, המהווה סיכון אבטחה גדול מאוד. לאחר שהבהרנו זאת, בואו נראה כיצד נוכל להתחיל, ולשם כך הדבר הראשון הוא להתקין את שרת ה- SSH בשרת:
# apt-get install שרת openssh
כעת עלינו ליצור את ספריית .ssh בספריית המשתמשים:
# mkdir -p $ HOME / .ssh
# chmod 0700 $ HOME / .ssh
# גע $ HOME / .ssh / מפתחות מורשים
אנו עורכים את הקובץ / etc / ssh / sshd_config ואנחנו מאמתים שהשורות הבאות הן כמו:
Pubkey אימות כן
AuthorizedKeysFile% h / .ssh / author_keys
עכשיו אנחנו הולכים ללקוח ומבצעים:
ssh -keygen -t rsa
נאמר לנו שהמפתח נוצר, ונבקש להזין את הקובץ בו הוא יאוחסן (כברירת מחדל הוא יהיה בביתנו, בתיקיה בשם /.ssh/id_rsa). אנו יכולים ללחוץ על Enter מכיוון שמיקום זה משרת אותנו בצורה מושלמת, ואז אנו לוחצים על Enter שוב בפעמיים שאנו מתבקשים הזן משפט סיסמה מאז, זכור, אנחנו הולכים להיכנס מרחוק מבלי להזין נתונים ולכן איננו רוצים ביטויים.
עכשיו שיש לנו את המפתח הציבורי, עלינו לשתף אותו עם אותם מחשבים שאליהם אנו מתחברים. בהנחה שהשרת עליו אנו מדברים מכיל את הכתובת 192.168.1.100, מה שעליך לעשות הוא:
ssh-copy-id -i $ HOME / .ssh / id_rsa.pub root@192.168.1.100
לאחר ההעתקה, אנו מוזמנים בצע את הכניסה מרחוק כדי לבדוק את המקשים, ויש לקחת בחשבון שבמקרה זה שורש זהו החשבון שאליו אנו ניגשים לשרת, כך שאם אנו רוצים לעשות זאת עם משתמש אחר עלינו לשנות את שורש חשבון המשתמש איתו אנו הולכים לבצע את גישה באמצעות SSH.
כעת עלינו רק להפעיל מחדש את שרת SSH כך שייקח את התצורה החדשה:
# /etc/init.d/ssh הפעלה מחדש
מעתה ואילך, אם אנו רוצים לגשת לשרת שני ולעשות זאת מבלי להזין סיסמה, עלינו פשוט לשלוח לו את המפתח הציבורי, איתו אנו פשוט חוזרים על הצעד האחרון, ומשנים את כתובת המשתמש וה- IP לפי הצורך:
ssh-copy-id -i $ HOME / .ssh / id_rsa.pub admin@192.168.1.228
תודה על המידע אבל שום דבר ... אין שום דרך ....
ניסיתי כל הבוקר וזה תמיד מבקש את הסיסמה שלי.
לפני זמן מה ניסיתי והשארתי את זה כבלתי אפשרי מאותה סיבה ...
אני יוצר את המפתח שלי ב- Macbook שלי, מעתיק אותו לפטל שלי ב- ~ / .ssh / authorised Keys
אני מגדיר את sshd.conf עם אימות ציבורי ומוודא שספריית המפתחות נמצאת בדיוק במקום בו נמצאים המפתחות. אני מפעיל מחדש את הפטל וכאשר אני מחבר אותו מבקש ממני שוב את הסיסמה
מה יכול להיכשל?
אחרי כמה שעות שניסיתי דברים רבים גיליתי שעם המשתמש שנוצר שלי זה אף פעם לא עובד, אבל עם משתמש ברירת המחדל שנקרא "אובונטו" זה עובד בפעם הראשונה.
כל הבהרה מדוע זה יכול לקרות?
Saludos y Gracias