Git
Chapters ▾ 2nd Edition

4.3 گیت روی سرور - ساختن کلید عمومی SSH

ساختن کلید عمومی SSH

بسیاری از سرور‌های گیت به وسیله کلید عمومی SSH تصدیق هویت می‌کنند. برای تهیه کردن یک کلید عمومی، هر کاربر در سیستمتان، در صورتی که ندارد، ملزم است یکی بسازد. این فرایند در همهٔ سیستم‌عامل‌ها یکسان است. اول، باید اطمینان حاصل کنید که از قبل کلید کلیدی ندارید. به صورت پیش فرض، کلید SSH هر کاربر در پوشه ~/.ssh ذخیره‌ می‌شود. شما می‌توانید به سادگی با رفتن به آن پوشه و لیست کردن محتویات آن را بررسی کنید:

$ cd ~/.ssh
$ ls
authorized_keys2  id_dsa       known_hosts
config            id_dsa.pub

شما به دنبال یک جفت فایل با نام‌هایی شبیه به id_dsa یا id_rsa و فایلی مشابه با پسوند .pub هستید. فایل .pub کلید عمومی شما است و فایل دیگر کلید خصوصی نظیر آن است. اگر این فایل‌ها (و یا حتی پوشه .ssh) را ندارید، می‌توانید آن‌ها را با اجرای برنا‌مه‌ای به نام ssh-keygen بسازید، که همراه پکیج SSH در سیستم‌‌عامل‌های لینوکس/مک و همراه «گیت برای ویندوز» ارائه می‌شود:

$ ssh-keygen -o
Generating public/private rsa key pair.
Enter file in which to save the key (/home/schacon/.ssh/id_rsa):
Created directory '/home/schacon/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/schacon/.ssh/id_rsa.
Your public key has been saved in /home/schacon/.ssh/id_rsa.pub.
The key fingerprint is:
d0:82:24:8e:d7:f1:bb:9b:33:53:96:93:49:da:9b:e3 schacon@mylaptop.local

ابتدا از شما می‌پرسد که کلید را کجا می‌خواهید ذخیره کنید (.ssh/id_rsa)، سپس دو بار از شما یک رمز (Passphrase) می‌خواهد، که می‌توانید آنرا خالی بگذارید اگر مایل نیستید هر بار که از کلید استفاده می‌کنید رمز وارد کنید. هرچند، اگر از رمزی استفاده می‌کنید، مطمئن شوید که از آپشن -o در دستور استفاده می‌کنید؛ این کار کلید خصوصی را به نحوی ذخیره می‌کند که در برابر حملات شکستن رمز Brute-force مقاوم‌تر است که فرمت پیش‌فرض فایل کلید خصوصی است. همچنین می‌توانید از ابزار ssh-agent برای اجتناب از هر بار رمزعبور وارد کردن رمز عبور استفاده کنید.

حالا، هر کاربر باید این کار را انجام دهد و کلید عمومی خود را به شما یا هرکسی که سرور گیت را مدیریت می‌کند ارسال کند (با فرض اینکه شما از سرور SSH استفاده می‌کند که نیازمند کلیدهای عمومی است). تمام کاری که آنها باید انجام دهند کپی کردن محتویات فایل .pub و ایمیل کردن آن به شما است. کلید عمومی چیزی شبیه به این است:

$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSU
GPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3
Pbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XA
t3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw/Pb0rwert/En
mZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbx
NrRFi9wrf+M7Q== schacon@mylaptop.local

برای آموزش عمیق‌تر درباره ساختن کلید SSH در سیستم‌عامل‌‌های مختلف، به صفحه راهنمای کلیدهای SSH در گیت‌هاب به آدرس https://help.github.com/articles/generating-ssh-keys مراجعه کنید.