Ключі SSH

From mediawiki.org
This page is a translated version of the page SSH keys and the translation is 98% complete.

Ключі SSH необхідні для входу на сервери Gerrit і GitLab , на які надсилається код.

Генерування нового ключа SSH

Дотримуйтеся наведених нижче інструкцій, щоб створити його, якщо у вас його ще немає в /.ssh. Щоб переконатися, що вам потрібно створити абсолютно новий ключ, перевірмо, чи ключ SSH уже існує у вашій системі. Виконайте цю команду в терміналі:

ls ~/.ssh

Команда покаже список файлів, які знаходяться в (прихованому) каталозі .ssh. Якщо каталог уже існує у вашій системі та якщо у виведених результатах міститься файл із назвою id_ed25519.pub, ви можете перейти безпосередньо до #Копіювання вашого відкритого ключа SSH.

Щоб згенерувати новий ключ SSH, відкрийте термінал, а потім введіть команду нижче та замініть user@example.com своєю електронною адресою. Нам потрібні параметри за замовчуванням, тому, коли вас попросять ввести файл, у якому потрібно зберегти ключ, просто натисніть ↵ Enter.

ssh-keygen -t ed25519 -C "user@example.com"

Введіть надійну й унікальну секретну фразу і натисніть клавішу ↵ Enter.

Чому секретна фраза має значення?
Паролі не дуже безпечні. Якщо ви використовуєте пароль, який легко запам’ятати, його легше вгадати або застосувати до нього метод «грубої сили». Якщо ви використовуєте випадковий пароль, його важко запам’ятати, тому ви можете його записати. Обидва варіанти дуже погані. Ось чому ви використовуєте ключі ssh. Але використання ключа ssh без секретної фрази в основному те саме, що запис цього випадкового пароля у файл на вашому комп'ютері. Кожен, хто отримає доступ до вашого диска, отримає доступ до кожної системи, в якій ви використовуєте цей ключ. Саме тому ви також додаєте секретну фразу. Щоб не вводити довгу секретну фразу щоразу, коли ви використовуєте ключ, існує інструмент під назвою ssh-agent. Він може безпечно зберігати вашу секретну фразу. Якщо ви користуєтеся macOS або Linux, ваші ключі можна зберегти у системному брелоку, щоб спростити ваше життя.

Команда ssh-keygen створить два файли в каталозі ~/.ssh:

  • ~/.ssh/id_ed25519 - ваш приватний ключ SSH (для ідентифікації)
  • ~/.ssh/id_ed25519.pub - ваш відкритий ключ SSH

Копіювання вашого відкритого ключа SSH

Отримайте вміст вашого файлу відкритого ключа (наприклад, id_ed25519.pub), щоб скопіювати його в буфер обміну:

Один із варіантів — відкрити файл відкритого ключа за допомогою вашого улюбленого текстового редактора (Блокнот, TextEdit, gedit тощо). У діалоговому вікні вибору файлів текстового редактора вам може знадобитися ввімкнути «Перегляд прихованих файлів», щоб знайти файл, оскільки каталог .ssh прихований. Іноді вибір «Перегляд прихованих файлів» доступний, якщо клацнути правою кнопкою миші в діалоговому вікні вибору файлів.

Іншими варіантами є:

  • У Linux запустіть cat ~/.ssh/id_ed25519.pub і вручну скопіюйте вихідні дані в буфер обміну.
  • У Windows ви можете відкрити Git GUI, перейти до «Help» 🡒 «Show Key», а потім натиснути «Copy To Clipboard», щоб скопіювати відкритий ключ у буфер обміну.
  • У macOS ви можете запустити pbcopy < ~/.ssh/id_ed25519.pub, щоб скопіювати вміст файлу відкритого ключа в буфер обміну.

Важливо скопіювати відкритий ключ SSH точно так, як він написаний, без додавання символів нового рядка чи пробілів. Скопіюйте повний текст, включаючи префікс "ssh-ed25519", сам ключ і суфікс електронної адреси.

Додавання приватного ключа SSH для використання в Git

Ви повинні запускати агентську службу SSH і додавати до неї свій закритий ключ SSH кожного разу, коли ви хочете підключитися до сервера Git. Це означає, що якщо ви закриєте Git Bash після виконання цих команд, вам потрібно буде запустити їх знову наступного разу, коли ви відкриєте Git Bash для повторного входу. Інакше ви отримаєте Permission denied ("У дозволі відмовлено") під час спроби надіслати код.

Запустіть командний рядок Git Bash.

  • Запустіть службу агента ssh
eval `ssh-agent`
Обов'язково використовуйте наголос `, а не одинарні лапки '. (Ви можете скопіювати та вставити з цієї сторінки, якщо ви не можете легко ввести цей спеціальний символ.) Note also that if you are using an alternative shell in Linux (for example the Fish shell), this command may not work; switching to Bash will fix the issue.
  • Додайте свій приватний ключ до агента.[1] Якщо ви виконали наведені вище кроки і ваш ключ має назву за умовчанням id_ed25519, тоді команда така:
ssh-add ~/.ssh/id_ed25519
If you get WARNING: UNPROTECTED PRIVATE KEY FILE!, run chmod 600 ~/.ssh/id_ed25519 and then rerun the above command.

Для macOS див. статтю CodeX.

  1. Якщо ви, як користувач Ubuntu, маєте повідомлення "Permission denied (publickey)" («Дозвіл заборонено (відкритий ключ)»), будь ласка, перегляньте цю сторінку довідки