שאלה כיצד ליצור מפתח ssh עבור משתמש אחר?


אני מנסה ליצור מפתח ssh עבור משתמש אחר. אני מחובר בתור שורש. האם אני יכול פשוט לערוך את הקבצים שנוצרו על ידי ssh-keygen ולשנות את השורש למשתמש שאני רוצה?


76
2017-10-22 19:24




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


תשובות:


אתה יכול לעשות את זה עם ssh-keygen, עם זאת, זכור כי המפתח הפרטי נועד להיות פרטי למשתמש ולכן אתה צריך להיות זהיר מאוד כדי לשמור על בטוח - בטוח כמו הסיסמה של המשתמש. או אפילו בטוח יותר, כמו המשתמש לא צפוי להיות נדרש לשנות את זה עם הכניסה הראשונה.

ssh-keygen -f anything יוצר שני קבצים בספרייה הנוכחית. anything.pub הוא המפתח הציבורי, שאותו תוכל לצרף למשתמש ~/.ssh/authorized_keys על כל שרת היעד.

הקובץ האחר, שנקרא רק anything הוא המפתח הפרטי ולכן צריך להיות מאוחסן בבטחה עבור המשתמש. מיקום ברירת המחדל יהיה ~username/.ssh/id_rsa (שם id_rsa, המהווה ברירת מחדל עבור מפתחות rsa). זכור כי .ssh הספרייה לא ניתן לקריאה או לכתיבה על ידי מישהו מלבד המשתמש, ואת ספריית הבית של המשתמש לא ניתן לכתוב על ידי מישהו מלבד המשתמש. כמו כן, הרשאות חייב להיות הדוק על המפתח הפרטי, כמו גם: קריאה / כתיבה עבור המשתמש בלבד, ואת ספריית .ssh ו keyfile פרטית חייב להיות בבעלות המשתמש.

מבחינה טכנית אתה יכול לאחסן את המפתח בכל מקום. עם ssh -i path/to/privatekey תוכל לציין מיקום זה, תוך כדי התחברות. שוב, הבעלות וההרשאות הנאות הן קריטיות ו- ssh לא יעבוד אם אין לך זכות.


74
2017-10-22 19:35



+1 להבעת מפתח פרטי (!) - mailq
אתה מניח כי המשתמש הוא אדם אמיתי. אם הכניסה היא משתמש לא אינטראקטיבי מנוצל לביצוע משימות השירות (למשל הפעלת סקריפטים maine על שרתים מרוחקים), כן, סביר להניח שאתה יוצר את המפתח עבור משתמש זה באופן ידני. כמובן, יש לזה השלכות ביטחוניות משלו, אבל זה סיפור אחר. - Rilindo
@Rilindo ssh -i כדי מפתח פרטי עבור תהליך שאינו מיוחס הוא איך אני מטפל יותר מאשר כמה תהליכי גיבוי אוטומטי rsync. :) - Shadur
אני לא אוהב את זה סוג של תשובה שאומרים "אתה לא צריך לעשות את זה" אבל לא לענות על השאלה. אמנם זה עשוי להיות נכון ומועיל בהקשר של השאלה המקורית, אנשים אחרים עשויים להיות אותה שאלה במצב שונה. "מפתחות ssh לא צריך להיות שנוצר עבור משתמש אחר": זה נכון במקרה פשוט. אבל לשקול מספר זהויות של אותו אדם פיזי, למשל. יכולות להיות מספר חשבונות על מספר מערכות, לא כולם מאפשר לך ליצור מפתחות או מאפשר להגן על מפתחות פרטיים appropiately. - Gustave
usersאו user's - User


ללא שם: יש אין מידע משתמש במפתחות SSH.

השדה האחרון במפתח ציבורי הוא תגובה (והוא יכול להיות שונה על ידי הפעלת הפקודה הבאה ssh-keygen -C newcomment).

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


109
2017-10-22 19:55



זו התשובה הנכונה. - sebnukem
אני רק לבדוק ואישר, לא רק שזה רק הערה, אבל זה יכול להיות מוסר עדיין המפתחות פועלים. תמיד חשבתי שזה חשוב! תודה על מתן התשובה הנכונה. כמו ההערות לעיל, יש לי סיבה ליצירת מפתחות עבור משתמשים אחרים, אבל אני לא אומר למה, אז theres אין ויכוח. - FreeSoftwareServers


הפוך את המשתמש באמצעות su ולהפעיל את המפתח כמו משתמש זה:

[root@kvm0001 ~]# su - joeuser
[joeuser@kvm0001 ~]$ ssh-keygen -t dsa (or rsa1 or rsa, depending on your security requirements)
Generating public/private dsa key pair.
Enter file in which to save the key (/home/joeuser/.ssh/id_dsa):

16
2017-10-22 19:35



מדוע לציין את ה- DSA? - Ram
אופס, כוח של הרגל. תן לי לעדכן. - Rilindo
אתה צריך להיות משתמש rsa (או possiblly אחד גרסאות עקומה אליפטית). dsa מוגבל keyizes מאובטחת. rsa1 הוא פורמט מורשת ssh1 אשר אף אחד לא צריך להשתמש יותר. - Peter Green
שלי joeuser הוא משתמש שירות, ולכן אני לא יכול להתחבר אליהם. כיצד ניתן לאפשר למשתמש שירות (זה רק מפעיל תהליכים) יש מפתח ssh? - Jonathan
@Jonathan Leaders אתה תציין את הקליפה עבור המשתמש בעת הפיכת המשתמש. משהו כזה: "[root @ ip-10-254-41-211 ~] # grep ftp / etc / passwd ftp: x: 14: 50: FTP משתמש: / var / ftp: / sbin / nologin [root @ ip-10-254-41-211 ~] # su - ftp su: אזהרה: לא ניתן לשנות את הספרייה ל / var / ftp: אין קובץ או ספריה כאלה חשבון זה אינו זמין כעת. [root @ ip-10-254-41-211 ~] # su -s / bin / bash ftp bash-4.2 $ whoami ftp bash-4.2 $ `` ` - Rilindo


כפי שנראה כאן, אתה יכול להשתמש chmod לשנות את הרשאות קריאה של התיקייה של המשתמש אתה רוצה להוסיף את המפתח SSH ל.

vim /home/username/.ssh/authorized_keys

לאחר מכן, פשוט להדביק את המפתח בשורה חדשה בתחתית הקובץ


5
2018-01-09 23:42



הקישור מת ... - Nyxynyx