تخفیف عضویت ویژه تا 25 اردیبهشت


در این ویدیو ابتدا با گیتهاب آشنا شده و سپس نحوه ساخت کلید ssh و اتصال به گیتهاب را بررسی میکنیم. یکی از امن ترین راه ها برای برقراری ارتباط از طریق اینترنت عمومی استفاده از ssh است. به همین دلیل است که راه اندازی کلید ssh در گیتهاب اولویت اصلی برای کاربران سرویس محبوب Git است. خوشبختانه، فرآیند پیکربندی کلید SSH به خصوص در توزیع لینوکس مانند اوبونتو نسبتاً ساده است.

 

راهنمای مطالعه

کلید ssh چیست؟

گیتهاب چیست؟

ساخت کلید ssh در لینوکس

ساخت کلید ssh در ویندوز

اضافه کردن کلید ssh به گیتهاب

 

# کلید ssh چیست؟

SSH یا Secure Shell راهی امن برای اتصال به کلاینت فراهم می کند. کلید ssh داده های منتقل شده از طریق شبکه را رمزگذاری می کند و یک لایه امنیتی اضافی ایجاد می کند. کلیدهای SSH در اندازه های مختلفی وجود دارند، اما یک انتخاب محبوب رمزگذاری 2048 بیتی RSA است که با رمز عبور 617 رقمی قابل مقایسه است.

 

کلیدهای SSH اتوماسیونی را فعال می کنند که خدمات ابری مدرن و سایر خدمات وابسته به رایانه را ممکن و مقرون به صرفه می کند. آنها در صورت مدیریت صحیح، راحتی و امنیت را بهبود می بخشند.

 

کلیدهای SSH از نظر عملکردی شبیه رمزهای عبور هستند. آنها اجازه دسترسی می دهند و کنترل می کنند که چه کسی می تواند به چه چیزی دسترسی داشته باشد. در مدیریت هویت و دسترسی، آنها به خط مشی ها، تدارک و خاتمه مانند حساب های کاربری و رمز عبور نیاز دارند. بدون کنترل کلیدهای SSH نمی توان محرمانه بودن، یکپارچگی، یا هرگونه تضمینی برای ادامه در دسترس بودن سیستم ها داشت.

 

کلیدهای SSH همیشه به صورت جفت هستند و هر جفت از یک کلید خصوصی و یک کلید عمومی تشکیل شده است. چه کسی یا چه چیزی این کلیدها را در اختیار دارد، نوع جفت کلید SSH را تعیین می کند. اگر کلید خصوصی و کلید عمومی نزد کاربر باقی بماند، این مجموعه از کلیدهای SSH به عنوان کلیدهای کاربر نامیده می شود. اما اگر کلیدهای خصوصی و عمومی بر روی یک سیستم راه دور باشند، این جفت کلید به عنوان کلید میزبان شناخته می شود.

 

 

# گیتهاب چیست؟

github یک پلتفرم برای اشتراک گذاری پروژه هایی است که از git استفاده میکنند. با استفاده از github میتوانید پروژه های خودتان را به بقیه برنامه نویس ها نشان داده و از کمک آنها بهره مند شوید. تاکنون ابزارها و تکنولوژی ها متعددی در github با کمک بقیه برنامه نویس ها ساخته شده اند. در حال حاضر بیش از 40 میلیون برنامه نویس و 100 میلیون پروژه در گیتهاب وجود دارد.

 

در واقع گیتهاب یک وب سایت و سرویس مبتنی بر ابر(cloud) است که به توسعه دهندگان کمک می کند تا کد خود را ذخیره و مدیریت کنند و همچنین تغییرات کد خود را ردیابی و کنترل کنند. رابط GitHub به اندازه کافی کاربرپسند است، بنابراین حتی کدنویسان مبتدی نیز می توانند از Git استفاده کنند. بدون GitHub، استفاده از Git به طور کلی نیاز به دانش فنی و استفاده از خط فرمان دارد.

 

علاوه بر این، هر کسی می تواند در گیتهاب ثبت نام کرده و یک مخزن کد عمومی را به صورت رایگان میزبانی کند، که این باعث محبوبیت گیتهاب به ویژه در پروژه های منبع باز میشود.

 

 

# ساخت کلید ssh در لینوکس

در این بخش نحوه ساخت کلید ssh در سیستم عامل لینوکس را بررسی میکنیم. در لینوکس برای ساخت کلید ssh از دستور ssh-keygen استفاده میشود:

ssh-keygen

 

دستور ssh-keygen بدون هیچ آپشن اضافی میتوانید یک کلید جدید ایجاد کند. اما میتوانید گزینه های دیگری نیز به این دستور اضافه کنید. مثلا برای ایجاد یک جفت کلید جدید 4096 بیتی SSH با آدرس ایمیل خود به عنوان کامنت، دستور زیر را اجرا کنید:

ssh-keygen -t rsa -b 4096 -C "your_email@domain.com"

 

بعد از اجرا دستور بالا، لینوکس از شما مکان و نام فایل جدید را میپرسد که در صورتی که مقدار وارد نکنید، لینوکس به عنوان پیشفرض مسیر انتخابی خود را خواهد داشت:

Enter file in which to save the key (/home/yourusername/.ssh/id_rsa):

 

مکان و نام فایل پیش فرض برای اکثر کاربران مناسب است. برای پذیرش و ادامه، Enter را فشار دهید.

 

در مرحله بعد، از شما خواسته می شود که یک عبارت عبور(passphrase) امن را تایپ کنید. یک عبارت عبور یک لایه امنیتی دیگر اضافه می کند. اگر یک عبارت عبور تنظیم کنید، هر بار که از کلید برای ورود به دستگاه راه دور استفاده می کنید، از شما خواسته می شود که آن را وارد کنید.

 

اگر نمی‌خواهید یک عبارت عبور تنظیم کنید، Enter را فشار دهید.

Enter passphrase (empty for no passphrase):

 

کل عملیات چیزی شبیه به این خواهد بود:

github@ubuntu:~/.ssh$ ssh-keygen -o -t rsa -C "github@mcnz.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ubuntu/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Your identification has been saved in /home/ubuntu/.ssh/id_rsa
Your public key has been saved in /home/ubuntu/.ssh/id_rsa.pub
The key fingerprint is: SHA256:g7RTuw9S+...
The key's randomart image is:
+---[RSA 3072]----+
|  ..Bo+.+o.. |
|. *.= +E . . |
| ...+ .. . . |
| +.. ...+ o  |
|  B o  ++  S |
| o . * = o + |
| o  B.oo  .  |
|   = oo  +   |
|   .o .o .   |
+----[SHA256]-----+

 

برای اینکه مطمئن شوید کلید ssh به درستی تنظیم شده، دستور زیر را وارد کنید:

ls ~/.ssh/id_*

# OUTPUT
/home/yourusername/.ssh/id_rsa /home/yourusername/.ssh/id_rsa.pub

 

همانطور که میبیند دو فایل به نام id_rsa ایجاد میشود که یکی از آنها پسوند pub دارد که به معنی عمومی بودن آن است. کلید عمومی(id_rsa.pub) را میتوانید در سرورهای مختلف جایگذاری کنید اما کلید خصوصی(id_rsa) باید در نزد شما محفوظ بماند.

 

میتوانید محتویات داخلی فایل id_rsa.pub را با دستور زیر مشاهده کنید:

github@ubuntu:~/.ssh$ cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCwrUzqtm
3K9YNI2WbXxkcfnHZgyW7/3WXghBbKndhbKbCR00JLfTHsK
Kaz17c4xIHQrw7u0GsPXai6pMtwMeVmXQH00L5hD0WE5Ioo

 

 

# ساخت کلید ssh در ویندوز

ساخت کلید ssh در ویندوز هم مشابه لینوکس است. ویندوز 10 از زمان به‌روزرسانی آوریل 2018، یک کلاینت داخلی OpenSSH دارد.

 

  در ویندوز وارد Command Prompt شده، ssh-keygen را تایپ کرده و Enter را بزنید. این دستور به طور خودکار کلیدهای SSH را تولید می کند. در تست های ما روی ویندوز 11، یک کلید RSA 2048 بیتی ایجاد کرد.

 

در ادامه مراحل، ویندوز از شما مکان ذخیره کلید ssh و  عبارت عبور(passphrase) را درخواست خواهد کرد که میتوانید همانند لینوکس عمل کنید.

 

 

# اضافه کردن کلید ssh به گیتهاب

بعد از ایجاد کردن کلیدهای ssh باید این کلید ها را در گیتهاب اضافه کنیم. برای اینکار ابتدا یک حساب کاربری در گیتهاب ایجاد کرده و وارد پروفایل خود شوید. وارد تنظیمات حساب کاربر(settings) شوید و روی گزینه SSH and GPG keys کلیک کنید. سپس روی دکمه سبز رنگ New SSH key کلیک کنید.

 

در صفحه جدید مقدار Title را یک اسم دلخواه وارد کنید و در بخش Key کلیدی که در فایل id_rsa.pub وجود دارد را اضافه کنید. سپس روی دکمه Add SSH key کلیک کنید تا عملیات پایان یابد.

 

با تکمیل راه‌اندازی کلید SSH گیتهاب، اکنون می‌توانید بدون نیاز به رمز عبور به گیتهاب متصل شده و عملیات های مختلف مانند pull یا push یا clone را انجام دهید.



0

intro

8:20

رایگان

1

init

7:10

رایگان

2

three levels

9:4

رایگان

3

log

9:8

رایگان

4

branch

17:35

رایگان

5

checkout

7:16

رایگان

6

revert

7:36

رایگان

7

reset

7:39

رایگان

8

gitignore

9:27

رایگان

9

github

16:33

رایگان

10

remote

7:48

رایگان

11

github branches

4:49

رایگان

12

github issues

9:1

رایگان

13

README

4:30

رایگان

14

fork

13:57

رایگان

15

merge conflict

6:41

رایگان

16

github conflict

8:35

رایگان

17

stash

8:38

رایگان

دوره های پیشنهادی

دوره آموزش GraphQL در پایتون
دوره آموزش GraphQL در پایتون
تکمیل ضبط
امیرحسین بیگدلو
دوره اول آموزش فلسک(Flask)
دوره اول آموزش فلسک(Flask)
تکمیل ضبط
امیرحسین بیگدلو
دوره آموزش ردیس(redis)
دوره آموزش ردیس(redis)
تکمیل ضبط
امیرحسین بیگدلو



ارسال نظر


باب

8 ماه قبل پاسخ به نظر

درود
میگم میتونیم چنتا ssh key بسازیم ؟
اگر اره ، هنگام ارتباط با github مشکل به وجود نمیاد ؟

ارسال نظر



امیرحسین بیگدلو

8 ماه قبل

سلام
بله، میتونید چندتا کلید ssh داشته باشید اما چرا باید همچین کاری کنید؟

erfan

1 سال قبل پاسخ به نظر

thank you for your great article, I use some techniques from your article. thank you again

ارسال نظر



علیرضا دانش مایه

2 سال قبل پاسخ به نظر

سلام بسیار عالی بود
ممنونم ؛ تشکر

فقط من همون دستوراتی که داخل ترمینال لینوکس وارد کردید
منم با سیستم ویندوز وارد کردم
( بدون اینکه برم اموزش فعال کردن ssh ببینم )
به راحتی فعال شد و کد رو برای من ارسال کرد و تونستم داخل تنظیمات گیت هابم وارد کنم که ثبت بشه

گفتم بیام بگم فرقی نمی کنه اصلا که با چه سیستمی باشیم

مرسی و مرسی بابت این سایت خوبتون

ارسال نظر



امیرحسین بیگدلو

2 سال قبل

سلام
اگر ssh رو تنظیم نکردی، پس چطور گیتهاب میشناستت؟


علیرضا دانش مایه

2 سال قبل

سلام جناب آقای بیگدلو
خسته نباشید خدا قوت
اول رفتم سرچ کردم که چطوری باید کلید اس اس اچ فعال کنم برای ویندوز
بعد دیدم یه ویدیو 30 دقیقه بود ؛ حقیقت ش حوصله ام نشد نگاه کنم

گفتم بیخالش
دستوراتی که شما می گید امتحان کنم ؛ تا اخر ویدیو نگاه کردم بعد همونارو انجام دادم به راحتی کد فرستاد
و همون کد رفتم تو تنظیمات گیت هابم زدم ؛ و از پذیرفت بدون مشکل

اگه میخواین یه ویدیو درست کنم ادامه این قسمت قرار بدید برای اون دسته از عزیزانی که با ویندوز کار می کنن
اگه خواستید داخل سایت قرار بدید


علیرضا دانش مایه

2 سال قبل

البته ممکن تایید نشده باشه
زیاد مطمن نیستم

اما گیت هاب برای ایمیل م یه پیام فرستااد
وقتی که تنظیم کردم کد رو داخل سایت

و کدش هم همونطوری که گفتم از ترمینال گیت
برداشتم و بردم داخل گیت هاب انداختم و ازم پذیرفت


کد زن قهرمان

4 ماه قبل

واقعا نظرتون عالی بود من ویندوز بودم گیر کرده بودم مشکلم حل شد!

mghorbany586@gmail.com

2 سال قبل پاسخ به نظر

بسیار عالی بود تشکر ویژه از شما

ارسال نظر



امیرحسین رضایی

2 سال قبل پاسخ به نظر

سلام
اینکه روی یک دامنه مثل میهن هاست و ... گیت لب میارن بالا
اینا چجوریه؟
میشه توضیح بدید؟ یارفرنس بدید
تشکر

ارسال نظر



جواتی

2 سال قبل پاسخ به نظر

سلام و خسته نباشید
الان یک عدد gitignore در سیستم لوکال داشتیم یکی هم داخل گیت هاب تعریف کردیم آنچه تلفیق می شود و می ماند چیست؟

یک اسم ریپازیتوری هم لوکال داشتیم و یکی داخل گیت هاب زدیم آنچه می ماند چیست؟
تشکر

ارسال نظر



امیرحسین بیگدلو

2 سال قبل

سلام و درود بر تو
آنچه میماند انسانیت است و آنچه نمیماند دنیاست
:)


جواتی

2 سال قبل

انشالله تو دیپلوی و CI/CD به مشکل بخوری بخندیم
انشالله از ساعت ۶ تا ۲ نیمه شب با گیت لب مشکل داشته باشی بخندیم


امیرحسین بیگدلو

2 سال قبل

اونو حل کردم :)

parsa

2 سال قبل پاسخ به نظر

واقعا ممنونم که لطف کردین و کمک میکنین به سوالی داشتم وقتی من فدورا هست سیستمم وقتی ssh-keygen رو زدم ssh ایجاد شد ولی وقتی واردش میشم لیست میگیرم گزینه هایی که میبینم با مال شما فرق دازه اینان authorized_keys id_ecdsa به نظرتون کدومشو cat کنم؟

ارسال نظر



امیرحسین بیگدلو

2 سال قبل

سلام
به نظر میرسه که کلید ssh برای شما به درستی ساخته نشده. یا شاید مسیرش رو عوض کردید و رفته جای دیگه.
وگرنه اسمشون باید همون id_rsa.pub باشه.
اینم مستندات فدورا:
https://docs.fedoraproject.org/en-US/Fedora_Contributor_Documentation/1/html/Translation_Quick_Start_Guide/sect-Translation_Quick_Start_Guide-Accounts_and_Subscriptions-Making_a_SSH_Key.html

MORTEZA

3 سال قبل پاسخ به نظر

واقعا دستتون درد نکنه خیلی کامل بود
اگ ممکنه آموزش بعدی رو graphql بزارید ممنون میشم...

ارسال نظر



امیرحسین بیگدلو

3 سال قبل

تشکر، حتما

مونگارد