s s h















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

אוקי, מה אני צריך לעשות?

  1. אם אין לי מפתחות אני צריך לייצר לעצמי מפתחות הצפנה
    ssh-keygen -t rsa

    עכשיו יש לי שני מפתחות: הפרטי   ~/.ssh/id_rsa  והציבורי   ~/.ssh/id_rsa.pub 


  2. לוודא שההרשאות של הקבצים והתיקיות נכונות
    chmod 700 ~/.ssh
    chmod 400 ~/.ssh/*
    chmod 600 ~/.ssh/known_hosts

  3. לשלוח לסמי בדואר את המפתח הציבורי שלי (id_rsa.pub)

ומה סמי צריך לעשות?

  1. ליצור את התיקיה של SSH
    mkdir ~/.ssh

  2. ליצור קובץ מורשים
    touch ~/.ssh/authorized_keys

  3. לוודא שההרשאות של הקבצים והתיקיות נכונות
    chmod 700 ~/.ssh
    chmod 400 ~/.ssh/*
    chmod 600 ~/.ssh/known_hosts

  4. להוסיף את המפתח הציבורי שלי לקובץ המורשים
    cat id_rsa.pub >> ~/.ssh/authorized_keys
    rm id_rsa.pub

  5. להודיע לי שאני יכול להתחיל לעבוד.

מעכשיו כאשר אריץ משהו כסמי באיילון המחשב לא יבקש את הסיסמא של סמי אלא את סיסמת המפתח הפרטי שלי:

gamba>  ssh sami@ayalon
Enter passphrase for key '/home/uuddii/.ssh/id_rsa':


דבר נוסף, ביום שסמי ירצה למנוע ממני להכנס הוא לא יצטרך להחליף לעצמו את סיסמא אלא פשוט למחוק את המפתח שלי מהקובץ authorized_keys










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

אז מה אני צריך לעשות?

  1. לקרוא לסוכן שיקליד בשבילי את הסיסמא
    eval `ssh-agent`


  2. למסור לסוכן את הסיסמא שלי...
    ssh-add

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









הפקודה ליצירת מפתחות היא  ssh-keygen

ssh-keygen -t rsa

המחשב ישאל לשם הקובץ (בשבילנו זה יהיה גם  שם המפתח)   אחרי יצירת המפתחות נמצא בתיקיה ~/.ssh    שני קבצים עם השם שנתָנו, לדוגמה: id_rsa למפתח הפרטי ו- id_rsa.pub למפתח הציבורי.