Спестете време при влизане в GitHub през SSH, като използвате удостоверяване без парола.

Удостоверяването с GitHub обикновено включва използване на токен за достъп или парола. Въпреки това, тези методи могат да бъдат неудобни и несигурни, особено при достъп до GitHub от множество устройства.

GitHub предоставя опцията за използване на Secure Shell (SSH) за удостоверяване. SSH представлява защитен мрежов протокол за отдалечен достъп до машина. Тази функция се оказва особено ценна в ситуации, които изискват автоматизация или чест отдалечен достъп.

Разбиране на SSH удостоверяването

Удостоверяването с SSH включва използването на криптографски ключове за установяване на защитена връзка (тунел) между клиент (локална машина) и сървър (GitHub).

Когато използва SSH за GitHub, потребителят генерира двойка SSH ключове – публичен ключ и частен ключ. Публичният ключ се качва в GitHub акаунта на потребителя, докато частният ключ остава сигурно съхранен на локалната машина на потребителя.

Процесът може да се оприличи на концепцията за ключалка и ключ. Публичният ключ (заключване) е предназначен да бъде открито споделян и сигурно съхраняван от страната на сървъра. Той служи като аналог на частния ключ, като позволява на сървъра да провери самоличността на вашата локална машина. Обратно, частният ключ (ключ) действа като уникален идентификатор, съхраняван изключително на вашата локална машина, което позволява успешно удостоверяване със сървъра.

instagram viewer

По време на удостоверяване с GitHub вашата локална машина представя частния си ключ като доказателство за самоличност. Сървърът проверява дали съответният публичен ключ, свързан с вашия акаунт в GitHub, съвпада с дадения частен ключ. Ако ключовете съвпадат, сървърът предоставя достъп, установявайки криптирани и защитени връзка за комуникация.

Настройване на SSH за GitHub

В този раздел ще видите как да настроите SSH за удостоверяване с GitHub.

1. Генериране на двойка SSH ключове

Процесът на генериране на двойка SSH ключове е първата стъпка към използването на SSH за удостоверяване.

  1. Отворете терминала или командния ред.
  2. Изпълнете следната команда, за да генерирате нова двойка SSH ключове:
     ssh-keygen -t rsa -b 4096 -C "вашият[email protected]"
  3. Ще бъдете подканени да въведете местоположение на файла, за да запазите двойката ключове. Натиснете Въведете за да приемете местоположението по подразбиране (~/.ssh/id_rsa) или да посочите персонализирано местоположение.
     > Генериране на двойка публични/частни RSA ключове.
     > Въведете файл вкойто за да запазите ключа (/home/vagrant/.ssh/id_rsa):
  4. След това ще бъдете помолени да въведете парола. Въпреки че не е задължително, добавянето на парола служи като допълнително ниво на сигурност. Уверете се, че помните паролата си.
     > Въведете парола (празна за без парола): 
     > Въведете същата парола отново:
  5. След като генерирате двойката ключове, трябва да видите два файла на посоченото място. id_rsa (личен ключ) и id_rsa.pub (публичен ключ).
     > Вашата идентификация е запазена в /home/vagrant/.ssh/id_rsa.
     > Вашият публичен ключ е запазен в /home/vagrant/.ssh/id_rsa.pub.
  6. След завършване се показват отпечатъкът на ключовете и изображението на случаен обект.
  7. И накрая, ще ви трябва съдържанието на публичния ключ, за да добавите към GitHub. Изпълнете следната команда, за да получите съдържанието:
     котка ~/.ssh/id_rsa.pub

Уверете се, че сте посочили пътя (~/.ssh/id_rsa.pub в моя случай), който сте използвали при създаването на ключовете.

Копирайте съдържанието на безопасно и временно място за по-късна употреба.

2. Добавяне на публичен ключ към GitHub

Сега, след като сте генерирали двойка SSH ключове, трябва да добавите публичния ключ към вашия акаунт в GitHub.

  1. Влезте в акаунта си в GitHub и отидете на своя акаунт Настройки.
  2. Кликнете върху SSH и GPG ключове разположен в лявата странична лента.
  3. Кликнете върху Нов SSH ключ.
  4. Дайте вашия SSH ключ a Заглавие.
  5. Поставете съдържанието на публичния ключ в Ключ поле.
  6. Накрая щракнете върху Добавете SSH ключ за да запазите SSH ключа във вашия акаунт в GitHub.

Успешно сте експортирали публичния ключ към вашия акаунт в GitHub с тях.

3. Конфигуриране на SSH агент

SSH агентът е програма, която помага за управлението на SSH ключове и осигурява сигурен начин за тяхното съхраняване и използване. Той действа като посредник между вашата локална машина и отдалечения сървър по време на SSH удостоверяване. Това ви позволява да управлявате множество SSH ключове за различни GitHub акаунти.

  1. Уверете се, че SSH агентът работи.
     $ eval"$(ssh-agent -s)"
     > Агент pid 2757
  2. Добавете частния ключ към SSH агента.
     $ ssh-добавяне ~/.ssh/id_rsa
     > Въведете парола за /home/vagrant/.ssh/id_rsa:
     > Добавена самоличност: /home/vagrant/.ssh/id_rsa (/home/vagrant/.ssh/id_rsa)

Успешно сте конфигурирали SSH агент да управлява вашите ключове.

4. Тестване на SSH връзката

Вече можете да тествате, за да проверите дали вашата SSH връзка е настроена правилно и можете да се удостоверите в GitHub с помощта на SSH.

  • Изпълнете командата по-долу, за да тествате SSH връзката към GitHub;
     ssh -T [email protected]
    ако всичко върви добре, ще видите предупреждение относно пръстовия отпечатък. Потвърдете пръстовия отпечатък и въведете да продължавам.
     > Автентичността на хоста 'github.com (140.92.130.4)' могане се установява.
    > Отпечатъкът на ключа на ECDSA е SHA256:p2QAMXNIC1TJYWeIOttrVc98/R1BUFWu3/LiyKgUfQM.
    > Сигурни ли сте, че искате продължи свързване (да/не)?
  • При въвеждане да, ще видите резултат, подобен на този по-долу.
     > Предупреждение: Добавено за постоянно "github.com, 140.92.130.4" (ECDSA) към списъка с известни хостове.
    > Здравей princwillingoo! ВиеУдостоверихте се успешно, но GitHub не предоставя достъп до обвивката.

Това показва, че удостоверяването е успешно.

Управление на хранилища с SSH

Конфигурирането на SSH ви позволява да управлявате вашите хранилища, без да се налага да се притеснявате за проблемите с пароли и токени за достъп.

Задаване на отдалечен URL адрес

git дистанционно комплект-url произход [email protected]:/.git

Клониране на хранилище

git клонинг [email protected]:/.git

Изпращане на промени в хранилище

git push произход 

Изтегляне на промени от хранилище

git тегли произход 

Предимства на SSH пред удостоверяване с парола

Използването на SSH за удостоверяване предлага няколко забележителни предимства пред традиционните методи за удостоверяване, базирани на парола. Това включва:

  • SSH удостоверяването елиминира необходимостта от пароли, намалявайки риска от кражба на идентификационни данни.
  • Използването на криптографски ключове го прави по-устойчив на атаки с груба сила в сравнение с паролите.
  • Ако вашият личен ключ е компрометиран, можете да го отмените и замените, правейки компрометирания ключ безполезен.

Поради тази причина SSH удостоверяването обикновено е по-добра опция в сравнение с удостоверяването с парола.

Най-добри практики и отстраняване на неизправности

За да осигурите гладка и сигурна настройка на SSH, е необходимо да следвате най-добрите практики и да сте наясно с често срещаните проблеми, които могат да възникнат, и начините за тяхното отстраняване.

  1. Винаги задавайте парола, за да създадете допълнителен слой на сигурност.
  2. Практикувайте честа ротация на ключове и архивиране.
  3. Потвърждавайте всяка стъпка, за да избегнете грешки в разрешенията или неправилна конфигурация на SSH агент.

Като се придържате към тези най-добри практики, можете уверено да използвате SSH удостоверяване за GitHub.

Гъвкавостта на SSH

SSH се използва широко в други области за дистанционно управление на сървъри, микроконтролери и мрежови устройства, тъй като позволява защитен достъп към интерфейса на командния ред (CLI), което позволява на потребителите да изпълняват различни задачи, да конфигурират настройки, да прехвърлят файлове и да отстраняват неизправности въпроси.