שאלה כיצד ניתן לומר ל- Git עבור Windows היכן למצוא את מפתח ה- RSA הפרטי שלי?


ההתקנה שלי Git פועל בסדר על לינוקס, אבל כאשר אני מנסה להגדיר את הדברים תחת Windows (באמצעות Git עבור Windows ו צב), אני לא יודע איפה לשים את המפתח הפרטי שלי SSH (או, יותר טוב, עדיין, איך לספר ssh שם הוא ממוקם). אני משתמש באפשרות ssh.exe סטנדרטי במהלך ההתקנה של Git עבור Windows. ההתקנה פועלת בסדר אם אני מאפשר אימות סיסמה (במקום RSA) בשרת.


464
2017-10-25 16:45




יש לי את אותה בעיה, אני יכול Ssh לתוך תיבת הפיתוח שלי באמצעות מפתח ציבורי כמו "שורש" באמצעות "Git Bash" תוכנית המותקנת עם "Git עבור Windows" אבל אני לא יכול להיכנס כמו "git" עם שלי מפתח למרות שהעתקתי את הקובץ "author_keys" שלי מה"שורש "שלי אל המשתמש" git "שלי והגדרתי את הבעלים וההרשאות כראוי. למה אני לא יכול להיכנס כמו "git" כאשר "שורש" עובד עם אותו "author_keys" קובץ זהה. במקום "git" הוא מעביר את כל המפתחות הפרטיים, אשר בדיוק אותו עובד עם "שורש" ומבקש סיסמה. זהו שרת Centos 5.5 אגב. - Jarrod Roberson
@ polly lollipop: האם יש לך את ההרשאות הנכונות בקובץ המורשה של המשתמש שלך git? זה צריך להיות chmod 600, והוא צריך להיות בבעלות המשתמש git. אם הוא בבעלות המשתמש השורש, זה רגיל לעבוד - Dan McClain
כן כל הקבצים והספריות הם הבעלים וההרשאות הנכונים - Jarrod Roberson


תשובות:


בשביל גיט בש

אם אתה מפעיל msysgit (אני מניח שאתה) והם מחפשים לרוץ Git Bash (אני ממליץ על TortoiseGit, אבל אני להישען על CLI יותר GUI עכשיו), אתה צריך להבין מה המדריך הביתה שלך עבור Git Bash על ידי הפעלת אותו ואז להקליד pwd (ב- Windows 7, זה יהיה משהו כמו C:\Users\phsr אני חושב). בזמן שאתה גית בש, אתה צריך mkdir .ssh.

לאחר שיש לך את ספריית הבית, וכן .ssh תחת תיקיה זו, אתה רוצה לפתוח PuTTYgen ולפתוח את המפתח (קובץ .ppk) שיצרת בעבר. לאחר שהמפתח פתוח, ברצונך לבחור Conversions -> Export OpenSSH key ולשמור אותו HOME\.ssh\id_rsa. אחרי שיש לך את המפתח באותו מיקום, Git Bash יזהה את המפתח ולהשתמש בו.

הערה: הערות מציינות שהדבר אינו פועל בכל המקרים. ייתכן שיהיה עליך להעתיק את המפתח OpenSSH ל Program Files\Git\.ssh\id_rsa (או Program Files (x86)\Git\.ssh\id_rsa).

עבור צב

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


462
2017-11-05 17:18



ההוראות של הקאטי לא יפעלו עד שיש ברשותך את המאגר (מכיוון שהגדרת התצורה 'מרחוק' אינה מופיעה אלא אם כן אתה פועל על ריפו), ואתה כנראה לא יכול לקבל את המאגר מלכתחילה אם אתה יכול ' לא לאמת את עצמך כדי לשכפל מן המקור. ערמומי! - Kylotan
עם Gitbash מצאתי שאני צריך להעתיק שלי ~/.ssh/id_rsa הקובץ אל Program Files\Git\.ssh\id_rsa - וזה היה קצת מבלבל, אבל עכשיו IntelliJ ו- Windows cmd יכול לדחוף את המאגרים git להשתמש באימות מפתח. - JP.
כמו כן. אני פשוט מותקן git-for-Windows, אני מפעיל את זה מ cmd.exe. הייתי צריך לשים את התיקים id_rsa ו id_rsa.pub לתוך c:\program files (x86)\Git\.ssh . ה .ssh דיר כבר היה נוכח. תודה, ג'יי.פי. - Cheeso
הקטע השני היה זהוב. :) - Bjørn
@Damon: זה צריך להיות id_rsa ללא הארכה. זה שם הקובץ, זה לא ספרייה - Dan McClain


באמצעות הלקוח המובנה SSH נשלח עם Git עבור Windows, אתה צריך להגדיר את משתנה הסביבה הביתה, כך הלקוח GIT SSH יכול למצוא את המפתח.

לדוגמה, ב Windows Vista ההתקנה, זה ייעשה על ידי הנפקת setx HOME c:\Users\admin\ על שורת הפקודה.

זה עשה את היום שלי קבוע את הבעיה עם Git ובלבד המפתח הפרטי שלך לא מוגן בסיסמה. אם אתה רוצה להשתמש ssh-agent, אז אתה יכול כנראה להפעיל ss-agent cmd.exe (אם כי מעולם לא עשיתי את זה) ואת ssh-add כרגיל.

שים לב שכל הכלים Git / SSH אמורים לפעול מתוך cmd.exe כדי לא למצמץ חלון.

אם זה לא עובד כראוי, באמצעות plink יכול להיות מושגת כנראה על ידי tweaking GIT_SSH. עיין בכל הדרכות של SVN + ssh; זה בעצם הצנרת אותו אתה צריך ההתקנה.


101
2017-11-05 18:24



זה מה שחיפשתי מאז אני מנסה להשתמש בשורת הפקודה של Windows, לא git bash. - John Ruiz
נחמד, תיקון קל אבל זה היה קשה להבין בלי זה! - thaddeusmt
חשוב הוא גם אין שום החסר בין HOME = ו- C: \ ... הפתרון של Oct עשה את העבודה עבורי. Youנות - Lutz
ה setx HOME c:\Users\admin` command doesn't seems to be working in Git Bash. You have to use במקום זאת. - trejder
+1 GIT_SSH=c:\pathto\plink.exe - Nick Grealy


ניתן לציין את מיקום המפתח עבור TortoiseGit בדרך הבאה:

  • פתח חלון Explorer.
  • פתח את Contextmenu ונווט צב → הגדרות
  • בחלון שנפתח כעת, נווט אל Git → מרחוק
  • הגדר את הנתיב למפתח PuTTY בתיבת הקלט המתאימה.

צילום מסך מופיע למטה:

Enter image description here


48
2017-11-05 14:07



בנוסף, אם אתה צריך להמיר את המפתח הפרטי שלך לפורמט '.ppk' מתבנית אחרת אתה יכול לעקוב אחר זה - Tariq M Nasim
זה עבד בשבילי. - Maxim Eliseev
Git> Remote מופיע רק לאחר שתשכפל בהצלחה את המאגר. - Steve Pitchers
פתרון הרבה יותר קל הוא להגדיר את הכל עובד כראוי git (באמצעות openSSH), ולאחר מכן לספר TortoiseGit להשתמש ssh.exe בשימוש על ידי git. ראה stackoverflow.com/a/33328628/318317 בדרך זו, אתה רק צריך לתקן את זה פעם אחת. - Daniel Rose


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

  • פתח את הפקודה Git Bash
  • הקלד 'ssh-keygen'
    • קבל את מיקום ברירת המחדל
    • בחר ביטוי סיסמה ריק (אז פשוט לחץ על 'הכנס' לכל השאלות ')
  • כעת העתק את המפתח הציבורי לשרת שלך, לדוגמה: SPP ~ / .ssh / id_rsa.pub someuser@someserver.com: ~

זה קצת על המחשב שלך לעשות. עכשיו ssh לתוך שרת היעד, ואז לעשות

mkdir -p ~/.ssh
cd ~/.ssh
cat ../id_rsa.pub >> authorized_keys
rm ../id_rsa.pub

זהו זה! אתה סיימת! מ Git Bash, בצע את הפעולות הבאות כדי לבדוק:

ssh someuser@someserver.com ls

אם הוא מפרט את הקבצים בספריית הבית שלך בשרת Git, ולאחר מכן סיימת!

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

  • ב גיט בש, הקלד 'cat ~ / .shsh / id_rsa.pub', בחר את התוצאה, ולהעתיק אותו ללוח.
  • באתר האינטרנט של GitHub, עבור אל 'הגדרות חשבון', 'SSH ו- GPG', לחץ על 'מפתח SSH חדש' והדבק את המקש.

45
2018-04-25 01:32



אל תיצור מפתחות ללא ביטויי סיסמה. זה כמו לשים את הסיסמה שלך בקובץ טקסט, אלא שכולם יודעים את מיקום ברירת המחדל עבור מפתחות פרטיים. - GregB
אתה עונה על השאלה הלא נכונה. Q הוא איך להצביע על מפתח פרטי קיים. - Orangutech
@GregB, אני מסתכל על זה ככה: כל שרת שבו אני יוצר סיסמה פחות מפתח הוא מאובטח כמו המחשב הנייד שלי, זה הרחבה של תחום האבטחה של המחשב הנייד שלי. למעשה, אפילו לא, מאז ספריית הבית שלי מוצפן ;-) אז, זה בטוח כמו מחיצת הבית מוצפן על המחשב הנייד שלי, שהוא "מספיק טוב" עבור הבטחת גישה github, לדעתי. (אשר עשויים להשתנות מן הדעה שלך כמובן!) - Hugh Perkins
@GregB אל תיפול לתוך פרנויה! :] בטוח, כי באמצעות מפתח מוגן באמצעות סיסמה הוא הרבה יותר מאובטח, מאשר באמצעות סיסמה פחות, אבל בטענה כי הסיסמה פחות המפתח הוא קל לשבור כמו אחסון סיסמאות בקובץ טקסט הוא שקר ברור. ראיתי מדריכים רבים, המעודדים משתמשים להשתמש במפתחות מוגנים בסיסמה, אבל מעולם לא ראיתי כל טענה, כי השימוש בהם ללא סיסמאות אינו מאובטח בכלל. בנוסף, מערכות מסוימות אינן תומכות בפתרונות הזכירה של סיסמת המפתח, שהוזנו על ידי משתמשים, ומבקשות זאת, בכל פעם שמפתח משמש. מה שהופך את השימוש במפתחות SSH חסר טעם במצב זה. - trejder
למען השיחה, שחרגה מהשאלה המקורית, מפתחות SSH הם בוודאי מאובטחים יותר מאשר סיסמאות, אך אבטחה זו מסכנת את ידי לא להצפין את מפתחות ה- SSH שלך. הגישה האישית שלי היא לפתוח את המפתחות שלי בתחילת היום באמצעות סוכן SSH, אשר לאחר מכן שומר את המפתחות מפוענח בזיכרון, כך שאני לא צריך להזין מחדש את הסיסמה לאורך כל היום. כמו @ Hugh פרקינס הערות, ואני paraphrasing, אתה יודע את כל דרישות האבטחה שלך טוב יותר מאשר אני / אנחנו עושים :). - GregB


אם אתה משתמש ב- msysgit עם הכלים OpenSSH, עליך ליצור ~/.ssh/id_rsa, או ליצור תצורה Git ב ~/.ssh/config אשר מצביע על המפתח שלך.

הנה דוגמה לתצורה של Git עבור Bitbucket שתשתמש בשם המשתמש הנכון, ומפתח שאינו מפתח ברירת המחדל (במקרה שתחזיק מפתח אחד עבור חיבורי SSH ואחד עבור חשבונות Git).

~ / .shsh / configYou

Host bitbucket.org
    Hostname bitbucket.org
    User git
    IdentityFile /C/keys/yourkey.key

פעם אחת ב Git Bash, אתה יכול להריץ שתי פקודות להוסיף את המפתח שלך ssh- ההפעלה הנוכחית של סשן, כדי למנוע צורך שוב ושוב להקליד את הסיסמה של המפתח.

eval `ssh-agent`
ssh-add /C/keys/yourkey.key

34
2018-04-11 06:34



עשיתי את זה אבל עבור github.com: מארח github.com IdentityFile ~ / .shsh / github_rsa - Sarah Vessels
אם יש לך מקום בנתיב שלך, עליך להשתמש במרכאות: IdentityFile "/ C / My Keys / key" - r03
אני מעדיף את זה ככה, כי זה איפשר לי להתחבר מהר קיימים מפתחות ממחשב אחר - Kirill Gusyatin
לגיטקונפיג שלי יש קטעים. תחת אילו סעיפים אני צריך לשים אלה המארחים? - Steve Yakovenko


אני רק קובע% HOME% =% HOMEPATH%

זה יש את היתרון של עבודה עבור כל המשתמשים מחובר למערכת (הם מקבלים כל תיקיות .Ssh נפרדים.).

ב- Vista:

  1. לחץ באמצעות לחצן העכבר הימני על המחשב
  2. בחר מאפיינים
  3. לחץ על Advanced System Settings (הגדרות מערכת מתקדמות)
  4. לחץ על משתני סביבה
  5. בחלק התחתון (משתני מערכת) לחץ על חדש
  6. עבור שם שם משתנה: HOME
  7. עבור סוג נתיב משתנה:% HOMEPATH%
  8. לחץ על אישור

14
2017-10-12 01:26



במקרה שלי הוספתי את HOME =% USERPROFILE% - igor
שים לב ש %HOMEPATH% אינו מכיל את אות הכונן, כך שאם המקור אינו מופעל C: אתה צריך preend C: ל %HOME%. - Graeme Perrow


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

http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html


7
2017-10-25 17:38



אני כאמור לעיל כי אני משתמש Git עבור Windows ואני משתמש ssh.exe (ארוזים w / git) במקום מרק. חייב להיות איזה תרגול רגיל להוספת מפתח פרטי, אני פשוט לא מצליח לגלות איך. בעוד התוכנה מיתוג עשוי אמנם לאפשר לי להיכנס, חייבת להיות דרך לעשות את זה עם ההתקנה סטנדרטי Git, לא? - binaryorganic
מצטער אני לא עובד על Windows, רק לינוקס. אבל המפתח צריך להיות סוכן SSH שלך. האם יש agent.exe או משהו לאורך שורות אלה? - Declan Shanaghy
כן, ההתקנה היתה עוגה בצד לינוקס. אבל אני חייב לקבל את זה עובד על Windows מדי לצערי. ישנם כמה קבצי ssh הקשורים ההפעלה בתיקייה git / bin על תיבת Windows (ssh, ssh-add, ssh-agent, ssh-keygen & ssh-keyscan), אבל אני לא יודע איך לעשות את כל אחד מהם לעשות משהו. הם פשוט מצמצמים את חלון ה- cmd ונסגרים מיד. אני מבולבל. - binaryorganic
Page אכן אכן פותרת את הבעיה עבורי - יש לי קיצור דרך בתיקיית האתחול של תפריט התחלה (C:\Users\owen.blacker\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup) מצביע על "C:\Program Files (x86)\PuTTY\pageant.exe" "C:\Users\owen.blacker\Documents\SSH\OwenBlackerPersonal.ppk" "C:\Users\owen.blacker\Documents\SSH\OwenBlackerWork.ppk", כך שהוא טוען את המפתחות SSH שלי על ההפעלה וזה עושה GIT "פשוט לעבוד": o) - Owen Blacker
@ OwenBlacker OMFG! אתה בהחלט צריך לכתוב הערה זו בגודל מלא תשובה! זה הפתרון היחיד כאן, כי למעשה עזר לי לפתור את הבעיה שלי! חבל, כי אני יכול לתת לך רק +1! You] - trejder


בסדר, הסתכלתי על ההצעה של ..

אבל הצבת המפתחות הפרטיים שלי ב- SSH בתיקייה ציבורית לא חשבתי שזה רעיון טוב, אז התחלתי לחפש איפה היה ידוע.

אז אם אתה רוצה שצריך להגן על המפתח שלך SSH אתה צריך לשים את המפתח שלך בספרייה הבאה:

עבור Windows 7, 8 ו- 8.1 32 סיביות:

C: \ Users \\ AppData \ Local \ VirtualStore \ תוכניות קבצים \ Git \

עבור Windows 7, 8 ו- 8.1 64 סיביות:

C: \ Users \\ AppData \ Local \ VirtualStore \ Program Files (x86) \ Git \


4
2017-09-08 10:04



היי בס. אני חושב שאתה צריך למחוק את השאלה שלך ולשאול או לתת את זה על משתמש סופר כי זה האתר הלא נכון עבור סוג זה של שאלה / תשובה :-) - Ian Macintosh
זה לא quistion אותי רק sugestion - Bas van den Dikkenberg
זה היה הפתרון הפשוט ביותר על מכונת Win7 שלי. כמוך, חיפשתי known_hosts. בטח, זה היה בפנים C:\Users\Dave\AppData\Local\VirtualStore\Program Files (x86)\Git\.ssh. על ידי הצבת קובץ המפתח שלי (id_rsa) בספרייה זו, ssh היה מסוגל למצוא אותו ללא תלונה. עשיתי קצת קריאה - כך Windows מטפל (מורשת) התוכנה מנסה לכתוב לאזורים אסורים (כגון "C: \ Program Files \"), כך ssh של Git הוא לגמרי לא מודע לכך שהוא כותב לספרייה VirtualStore, Windows הוא טיפול זה בשקיפות. לפחות קבצים אלה שייכים למשתמש! - DaveGauer