ברוכים הבאים למדריך האולטימטיבי שלנו להגדרת מפתחות 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
ליבך!