האם מפתחות ה-SSH הציבוריים שלך מקשים עליך? נסה אחד מהפתרונות האלה.
SSH הוא כלי שימושי לחיבור למכונות מרוחקות, אבל אתה עלול להיתקל בשגיאת "הרשאה נדחתה (publickey)" הכוללת את המפתח הציבורי שלך בלינוקס. למרבה המזל, ישנם כמה תיקונים קלים שתוכל לנסות לפתור את זה.
מהו מפתח ציבורי?
כאשר אתה יוצר זוג מפתחות עבור SSH בלינוקס, תקבל מפתח ציבורי ומפתח פרטי. המפתח הפרטי יישאר איתך כסוד שמור היטב, אבל המפתח הציבורי הוא מה שישודר לשרתים מרוחקים כדי לאפשר לך להיכנס ללא סיסמה. לקוח ה-SSH המקומי שלך יתאים את המפתח הציבורי למפתח הפרטי בעת התחברות.
היתרון בשיטה זו הוא שאתה רק צריך למסור את המפתח הציבורי. כל עוד אתה שומר על המפתח הפרטי שלך פרטי, זה אמור לשמור על אבטחתך למקרה שהמפתח הציבורי שלך ייפגע. המפתח הציבורי יהיה חסר תועלת בפני עצמו.
OpenSSH, לקוח ושרת SSH הנפוצים ביותר בעולם הקוד הפתוח, דורש את הקובץ המכיל כל מפתחות ציבוריים במחשב המרוחק (.ssh/authorized_keys" בספריית הבית שלך), כדי לקבל הרשאות מסוימות. זה לא יעבוד אם הרשאות הכתיבה מוגדרות עבור משתמשים אחרים, אשר ידועים כ"ניתנים לכתיבה בעולם". מכיוון ששם הספרייה מתחיל בנקודה (.), הוא לא יופיע ברישומי ls, אלא אם תשתמש ב- פקודה ls -A.
הרשאות עשויות להשתנות אם הקובץ הועתק ממחשב אחר או שיצרת אותו בעצמך. למרבה המזל, זה קל לתקן.
בדוק את הרשאות המפתח הציבורי שלך
הקובץ Authorized_keys הוא פשוט קובץ טקסט רגיל המכיל את כל המפתחות הציבוריים מלקוחות שאתה רוצה להיות מסוגלים להיכנס לחשבון שלך במחשב המרוחק. כדי לראות את ההרשאות שלו, השתמש בפקודה ls עם האפשרות -l:
ls -l ~/.ssh/authorized_keys
זה יציג את הגדרות ההרשאה עבור הבעלים, הקבוצה ומשתמשים אחרים. שימו לב לשש האותיות האחרונות במחרוזת. אם אתה רואה בהם "w", זה אומר שהקבוצה או אחרים יכולים לכתוב לה, מה שהופך אותה לא בטוחה.
תרצה שהקובץ הזה יהיה ניתן לכתיבה על ידך, אך לא על ידי הקבוצה או אחרים. כדי לתת גישה למשתמשים הנכונים, אתה יכול לשנות הרשאות עם chmod.
ישנן שתי דרכים: מספרית וסמלית.
הדרך המספרית קצרה יותר, אך עליך לשנן את מספרי ההרשאה האוקטליים:
chmod 700 ~/.ssh/authorized_keys
השיטה הסמלית היא יותר מנמונית:
chmod go-w ~/.ssh/authorized_keys
העתק בבטחה מפתחות באמצעות ssh-agent
אתה יכול להעתיק ולהדביק ידנית כל מפתח ציבורי מהמחשב שלך לתוך ~/.ssh/.authorized_keys קובץ, אך שימוש בתוכנת ssh-agent יקטין את הסיכויים לשגיאות הרשאות כלשהן.
כדי להפעיל את ssh-agent, השתמש בפקודה זו:
eval "$(ssh-agent-s)"
כדי להיכנס לשרת מרוחק באמצעות ssh-agent, השתמש באפשרות -A עם ssh
ssh -A [email protected]
בדוק את הגדרות ה-sshd של השרת המרוחק
אם אחד מהמאמצים הללו נכשל, ייתכן שיהיה עליך לבצע כמה שינויים בתצורה בשרת ה-sshd במחשב המרוחק אם יש לך גישת שורש. אם לא, סביר להניח שתצטרך ליצור קשר עם מנהל המערכת כדי לעזור לך לפתור בעיות בחיבור SSH. זוהי שיטה של מוצא אחרון מכיוון שהיא עלולה להפוך את המערכת שלך לפחות מאובטחת.
קובץ התצורה כלל המערכת עבור sshd הוא /etc/ssh/sshd_config. מכיוון שהוא בבעלות השורש, תצטרך להשתמש ב-sudo כדי לערוך אותו. לדוגמה, כדי לערוך אותו עם Vim:
sudo vim /etc/ssh/sshd_config
כדי לאפשר ל-sshd לאפשר לך להיכנס גם אם קובץ ה-autorized_keys שלך ניתן לכתיבה בעולם, הגדר את האפשרות "StrictModes" ל"לא" בקובץ זה.
שמור אותו והפעל מחדש את שרת SSH:
sudo systemctl restart sshd.service
עכשיו אתה יכול לתקן שגיאות הרשאות מפתח ציבורי SSH
אתה עלול להיתקל בשגיאות בנוגע למפתחות ציבוריים של SSH במערכות מרוחקות. למרבה המזל, רוב הזמן כל מה שאתה צריך לעשות הוא לבדוק ולהגדיר את הרשאות הקובץ כך שאף אחד אחר לא יוכל לראות את המפתח שלך. אתה יכול גם להשתמש ב-ssh-agent לחיבורים אמינים יותר. כמוצא אחרון, אתה יכול להפוך את שרת SSH לפחות מחמיר.