Skip to content

Commit 3a6d22d

Browse files
committed
Patch chapter 4
1 parent ba8350b commit 3a6d22d

File tree

12 files changed

+396
-470
lines changed

12 files changed

+396
-470
lines changed

TRANSLATION_NOTES.asc

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,4 +127,11 @@
127127
|برچسب توضیحی |Annotated tag
128128
|برچسب سبک |Lightweight tag
129129
|نام‌های مستعار |Aliases
130+
|مخزن بر |Bare repository
131+
|خلاصه |Summary
132+
|گواهی |Credential
133+
|دستگاه/سیستم |Machine
134+
|دیمن |Daemon
135+
|دیمنیزه |Daemonize
136+
|هندلر |Handler
130137
|===
Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
[[_generate_ssh_key]]
2-
=== ساخت کلید عمومی SSH
2+
=== ساختن کلید عمومی SSH
33

44
(((SSH keys)))
5-
65
بسیاری از سرور‌های گیت به وسیله کلید عمومی SSH تصدیق هویت می‌کنند.
7-
برای تهیه کردن یک کلید عمومی، هر کاربر در سیستم شخصی خود باید یکی از آن را اگر ندارد بسازد.
8-
این فرایند در همه‌ی سیستم‌های عامل یکسان است.
9-
اول، شما باید بررسی کنید که از قبل کلید عمومی نساخته باشید.
10-
به صورت پیش فرض، کلید SSH هر کار در پوشه `ssh./~` ذخیره‌ می‌شود.
11-
شما می‌توانید به سادگی پوشه را چک کنید محتوای پوشه را لیست کنید:
6+
برای تهیه کردن یک کلید عمومی، هر کاربر در سیستمتان، در صورتی که ندارد، ملزم است یکی بسازد.
7+
این فرایند در همهٔ سیستم‌عامل‌ها یکسان است.
8+
اول، باید اطمینان حاصل کنید که از قبل کلید کلیدی ندارید.
9+
به صورت پیش فرض، کلید SSH هر کاربر در پوشه `~/.ssh` ذخیره‌ می‌شود.
10+
شما می‌توانید به سادگی با رفتن به آن پوشه و لیست کردن محتویات آن را بررسی کنید:
1211

1312
[source,console]
1413
----
@@ -18,10 +17,10 @@ authorized_keys2 id_dsa known_hosts
1817
config id_dsa.pub
1918
----
2019

21-
شما به دنبال یک فایل با نامی شبیه به `id_dsa` یا `id_rsa` هستید و فایل با پسوند `pub.`.
22-
فایل `pub.` کلید عمومی شما است و بقیه فایل‌ها با کلید خصوصی ارتباط دارند.
23-
اگر این فایل‌ها(و یا حتی پوشه `ssh.`) را ندارید، می‌توانید آن‌ها را با اجرای برنا‌مه‌ای به نام `ssh-keygen` بسازید،
24-
که همراه پکیج SSH در سیستم‌‌عامل‌های لینوکس/مک موجود است و همچنین همراه بسته نصبی گیت در ویندوز موجود است.
20+
شما به دنبال یک جفت فایل با نام‌هایی شبیه به `id_dsa` یا `id_rsa` و فایلی مشابه با پسوند `.pub` هستید.
21+
فایل `.pub` کلید عمومی شما است و فایل دیگر کلید خصوصی نظیر آن است.
22+
اگر این فایل‌ها (و یا حتی پوشه `.ssh`) را ندارید، می‌توانید آن‌ها را با اجرای برنا‌مه‌ای به نام `ssh-keygen` بسازید،
23+
که همراه پکیج SSH در سیستم‌‌عامل‌های لینوکس/مک و همراه «گیت برای ویندوز» ارائه می‌شود:
2524

2625
[source,console]
2726
----
@@ -37,14 +36,14 @@ The key fingerprint is:
3736
d0:82:24:8e:d7:f1:bb:9b:33:53:96:93:49:da:9b:e3 [email protected]
3837
----
3938

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

45-
حالا، هر کاربر باید کلید عمومی خود را به شما یا هرکسی که مدیریت سرور گیت را بر عهده دارد ارسال کند( با توجه به اینکه شما تنظیمات
46-
سرور را برپایه SSH انجام دادید پس به این ترتیب نیازمند کلیدهای عمومی است).
47-
تمام کاری باید همه آن را انجام دهند این است که محتوای فایل `pub.` برای شما ایمیل کنند.
45+
حالا، هر کاربر باید این کار را انجام دهد و کلید عمومی خود را به شما یا هرکسی که سرور گیت را مدیریت می‌کند ارسال کند (با فرض اینکه شما از سرور SSH استفاده می‌کند که نیازمند کلیدهای عمومی است).
46+
تمام کاری که آنها باید انجام دهند کپی کردن محتویات فایل `.pub` و ایمیل کردن آن به شما است.
4847
کلید عمومی چیزی شبیه به این است:
4948

5049
[source,console]
@@ -58,5 +57,4 @@ mZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbx
5857
NrRFi9wrf+M7Q== [email protected]
5958
----
6059

61-
برای آموزش عمیق‌تر درباره ساختن کلید SSH در سیستم‌عامل‌‌های مختلف، به صفحه راهنمای کلید SSH گیت‌هاب
62-
به آدرس https://help.github.com/articles/generating-ssh-keys[] مراجعه کنید.
60+
برای آموزش عمیق‌تر درباره ساختن کلید SSH در سیستم‌عامل‌‌های مختلف، به صفحه راهنمای کلیدهای SSH در گیت‌هاب به آدرس https://help.github.com/articles/generating-ssh-keys[] مراجعه کنید.
Lines changed: 23 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,30 @@
11
=== دیمن گیت
22

3-
(((serving repositories, پروتکل گیت)))
3+
(((serving repositories, git protocol)))
4+
در مرحله بعد یک دیمن میزبان مخازن را با پروتکل «گیت» راه خواهیم انداخت.
5+
این انتخاب رایج برای دسترسی سریع و تصدیق هویت نشده به داده‌های گیتتان است.
6+
یادتان باشد که از آنجایی که این یک سرویس تصدیق هویت شده نیست، هر چیزی که بر پایه این پروتکل در شبکه میزبانی شود، عمومی است.
47

5-
حالا با استفاده از پروتگل ‍«Git» می‌خواهیم سرویس‌دهنده دیمن مخازن را نصب و ران‌اندازی کنیم.
6-
این انتخاب بسیار معمول و سریع است، دسترسی تصدیق هویت نشده به اطلاعات گیت خودتان.
7-
یادتان باشد که این یک سرویس تصدیق هویت شده نیست، هر کاری بر پایه این پروتکل انجام‌ دهید در شبکه، عمومی است.
8+
اگر این پروتکل را روی سروری خارج از فایروال خود اجرا می‌کنید، بهتر است فقط برای پروژه‌هایی که به صورت عمومی برای تمام جهان قابل مشاهده است استفاده شود.
9+
اگر سروری که با آن سروکار دارید درون فایروالتان است، ممکن است از آن برای پروژه‌های که تعداد کثیری از مردم یا کامپیوترها (یکپارچه‌سازی مداوم یا سرورهای ساخت)
10+
به آن دارند دسترسی فقط-خواندن استفاده کنید، زمانی که نخواهید برای هر کدام یک کلید SSH اضافه کنید.
811

9-
اگر این پروتکل را خارج از فایروال خود بر روی سرور اجرا کنید، فقط قابل استفاده برای پروژه‌هایی است که به صورت عمومی برای تمام
10-
جهان قابل مشاهده است.
11-
اگر سروری که با آن سروکار دارید درون فایروالتان است، احتما شاید از آن برای پروژه‌های که تعداد کثیری از مردم یا کامپیوترها
12-
فقط دسترسی خواندن به آن دارند استفاده می‌کنید و در زمانی که نخواهید به هر کدام یک کلید SSH دهید.
13-
14-
در هر صورت نصب و راه‌اندازی پروتکل گیت بسیار ساده است.
15-
اصولا، لازم است تا از این دستور استفاده شود که اسکرپیت در پشت صحنه اجرا شود:(((git commands, daemon)))
12+
در هر صورت نصب و راه‌اندازی پروتکل گیت نسبتاً آسان است.
13+
اصولاً، لازم است این دستور را مانند دیمن‌های دیگر (دیمنیزه) اجرا کنید:(((git commands, daemon)))
1614

1715
[source,console]
1816
----
1917
$ git daemon --reuseaddr --base-path=/srv/git/ /srv/git/
2018
----
2119

22-
آپشن `reuseaddr--` به سرور امکان دوباره اجرا شدن را می‌دهد؛ بدون اینکه لازم باشد تا اتصالات قدیمی قطع شوند، همچنین آپشن `base-path--`
23-
به مردم اجازه می‌دهد تا بدون وارد کردن مسیر ورودی پروژه را کلون کنند و مسیر در آخر به دیمن گیت خواهد گفت در کجا به دنبال مخازن برای
24-
خروجی گرفتن بگردد.
25-
اگر فایروال دارید، نیازدارید که تا راهی بر روی پرت ۹۴۱۸ باز کنید.
20+
آپشن `--reuseaddr` به سرور این امکان را می‌دهد که بدون اینکه لازم باشد تا اتصالات قدیمی تایم-اوت دهند ریسارت شود، مادامی که آپشن `--base-path`
21+
به مردم اجازه می‌دهد تا بدون وارد کردن کامل مسیر ورودی پروژه را کلون کنند و مسیر در آخر به دیمن گیت خواهد گفت در کجا به دنبال مخازن برای خروجی گرفتن بگردد.
22+
اگر فایروال دارید، مستلزم خواهید بود که تا راهی بر روی پورت ۹۴۱۸ روی آن باز کنید.
2623

27-
با توجه به سیستم‌عاملی که از آن استفاده می‌کنید، شما چندین راه برای برای اجرای این فراید به صورت پشت صحنه یا دیمنایز شده دارید.
24+
با توجه به سیستم‌عاملی که استفاده می‌کنید، چندین راه برای دیمنیزه کردن این فرآیند دارید.
2825

29-
از آنجایی که `systemd` یکی از معمول ترین سیستم‌ اولیه در بین توزیع‌های مدرن لینوکسی است،‌ می‌توانید از ان برای این کار استفاده کنید.
30-
به راحتی فایلی را با محتوای زیر در `etc/systemd/systemm/git-daemon.service/` جایگزاری کنید:
26+
از آنجایی که `systemd` یکی از رایج‌ترین اینیت‌سیستم‌ها بین توزیع‌های مدرن لینوکس است،‌ می‌توانید از آن برای این کار استفاده کنید.
27+
خیلی ساده، فایلی را با محتویات زیر در `/etc/systemd/systemm/git-daemon.service` قرار دهید:
3128

3229
[source,console]
3330
----
@@ -51,19 +48,20 @@ Group=git
5148
WantedBy=multi-user.target
5249
----
5350

54-
شاید لازم باشد توجه داشته باشید که دیمن گیت در همینجا با دستور `git` هم برای کابر و هم گروه کاربر در دسترس است.
51+
ممکن است متوجه شده باشید که دیمن گیت اینجا با `git`،‌ هم به عنوان گروه و کاربر، شروع شده است.
5552
آن را با توجه به نیاز خود اصلاح کنید و مطمئن شوید که کاربر نام برده در سیستم وجود دارد.
56-
همچنین، بررسی کنید تاباینری گیت در مسیر `usr/bin/git/` وجود دارد و اگر لازم است مسیرش را تغییر دهید.
53+
همچنین، چک کنید که باینری گیت در مسیر `/usr/bin/git` قرار داشته باشد و اگر لازم است مسیرش را تغییر دهید.
5754

58-
در آخر، دستور `systemctl enable git-daemon` را اجرا کنید تا این سرویس به صورت اتوماتیک در موقع بوت سیستم نیز اجرا شود،
59-
و می‌توانید این سرویس را با دستور `systemctl start git-daemon` و `systemct stop git-daemon` اجرا یا متوقف کنید.
55+
در آخر، دستور `systemctl enable git-daemon` را اجرا خواهید کرد تا این سرویس به صورت خودکار در موقع بوت سیستم نیز اجرا شود،
56+
و همچنین می‌توانید این سرویس را، به ترتیب با دستورهای `systemctl start git-daemon` و `systemct stop git-daemon`، شروع یا متوقف کنید.
6057

61-
بعد، باید به گیت بگویید که برای کدام مخازن اجازه دسترسی بدون تصدیق هویت وجود دارد.
62-
شما می‌توانید این کار را برای هر مخزن با ساخت یک فایل به نام `git-daemon-export-ok` انجام دهید.
58+
بعد، باید به گیت بگویید که برای کدام مخازن اجازه دسترسی بدون تصدیق هویت وجود داشته باشد.
59+
می‌توانید این کار را برای هر مخزن با ساخت یک فایل به نام `git-daemon-export-ok` انجام دهید.
6360

6461
[source,console]
6562
----
6663
$ cd /path/to/project.git
6764
$ touch git-daemon-export-ok
6865
----
69-
حضور آن فایل به گیت می‌گوید که مشکلی برای پذیرش این پروژه بدون تصدیق هویت وجود ندارد.
66+
67+
حضور آن فایل به گیت می‌گوید که میزبانی این پروژه بدون تصدیق هویت مشکلی ندارد.

0 commit comments

Comments
 (0)