Ключі SSH
Ключі 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
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!
, runchmod 600 ~/.ssh/id_ed25519
and then rerun the above command.
Для macOS див. статтю CodeX.
- ↑ Якщо ви, як користувач Ubuntu, маєте повідомлення "Permission denied (publickey)" («Дозвіл заборонено (відкритий ключ)»), будь ласка, перегляньте цю сторінку довідки