המדריך האולטימטיבי ל- SSH - הגדרת מפתחות SSH

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

צור זוג מפתחות SSH חדש

פתח מסוף והפעל את הפקודה הבאה:

ssh-keygen

תראה את הטקסט הבא:

Generating public/private rsa key pair. Enter file in which to save the key (/home/username/.ssh/id_rsa):

לחץ על Enter כדי לשמור את המקשים /home/username/.sshבספריית ברירת המחדל .

לאחר מכן תתבקש להזין סיסמה:

Enter passphrase (empty for no passphrase):

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

לאחר הזנת ואישור הסיסמה שלך, תראה את הדברים הבאים:

Your identification has been saved in /home/username/.ssh/id_rsa. Your public key has been saved in /home/username/.ssh/id_rsa.pub. The key fingerprint is: SHA256:/qRoWhRcIBTw0D4KpTUyK6YepyL6RQ2CQrtWsaicCb4 [email protected] The key's randomart image is: +---[RSA 2048]----+ | .o=+.... | |+.*o+o . | |+X.=o o | |@.=.oo . | |=O ...o S | |o.oo . . | |.E+ . . . . | |oo . ... + | |=.. .o. . . | +----[SHA256]-----+

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

נהל מפתחות SSH מרובים

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

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

פתרון טוב יותר הוא להוסיף אוטומטית מפתחות, לאחסן סיסמאות ולציין באיזה מפתח להשתמש בעת גישה לשרתים מסוימים.

SSH config

הזן SSH config, שהוא קובץ תצורה למשתמש לתקשורת SSH. צור קובץ חדש: ~/.ssh/configופתח אותו לעריכה:

nano ~/.ssh/config

ניהול מפתח SSH המותאם אישית

הדבר הראשון שאנו הולכים לפתור באמצעות configקובץ זה הוא להימנע מהצורך להוסיף מפתחות SSH בעלי שם מותאם אישית באמצעות ssh-add. בהנחה שקוראים למפתח ה- SSH הפרטי שלך ~/.ssh/id_rsa, הוסף את configהקובץ הבא:

Host github.com HostName github.com User git IdentityFile ~/.ssh/id_rsa IdentitiesOnly yes

לאחר מכן, ודא כי ~/.ssh/id_rsaהוא אינו נמצא על ssh-agentידי פתיחת מסוף אחר והפעלת הפקודה הבאה:

ssh-add -D

פקודה זו תסיר את כל המקשים ssh-agentמההפעלה הפעילה כעת .

כעת אם תנסה לסגור מאגר GitHub, configהקובץ שלך ישתמש במפתח ב ~/.ssh/ida_rsa.

להלן מספר דוגמאות תצורה שימושיות אחרות:

Host bitbucket-corporate HostName bitbucket.org User git IdentityFile ~/.ssh/id_rsa_corp IdentitiesOnly yes

עכשיו אתה יכול להשתמש git clone [email protected]:company/project.git

Host bitbucket-personal HostName bitbucket.org User git IdentityFile ~/.ssh/id_rsa_personal IdentitiesOnly yes

עכשיו אתה יכול להשתמש git clone [email protected]:username/other-pi-project.git

Host myserver HostName ssh.username.com Port 1111 IdentityFile ~/.ssh/id_rsa_personal IdentitiesOnly yes User username IdentitiesOnly yes

עכשיו אתה יכול SSH לשרת שלך באמצעות ssh myserver. אתה כבר לא צריך להזין יציאה ושם משתמש בכל פעם שאתה SSH לשרת הפרטי שלך.

ניהול סיסמאות

The last piece of the puzzle is managing passwords. It can get very tedious entering a password every time you initialize an SSH connection. To get around this, we can use the password management software that comes with macOS and various Linux distributions.

For this tutorial we will use macOS's Keychain Access program. Start by adding your key to the Keychain Access by passing -K option to the ssh-add command:

ssh-add -K ~/.ssh/id_rsa_whatever

Now you can see your SSH key in Keychain Access:

גישה למחזיק מפתחות

But if you remove the keys from ssh-agent with ssh-add -D or restart your computer, you will be prompted for password again when you try to use SSH. Turns out there's one more hoop to jump through. Open your SSH config file by running nano ~/.ssh/config and add the following:

Host * AddKeysToAgent yes UseKeychain yes

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

עכשיו שאתה יודע את היסודות של יצירת מפתחות SSH חדשים וניהול מספר מפתחות, צא ולכל sshליבך!