Работа по SSH
Info
Ключи SSH в Git используются для аутентификации при доступе к удаленным серверам через протокол Secure Shell (SSH). Они обеспечивают безопасный способ передачи данных между вашим компьютером и сервером, на котором хранится репозиторий Git.
Перед началом
- Команды зависят от терминала. Команда
catработает вmacOS,LinuxиGit Bash, но не вcmd.exe. - Для новых ключей рекомендуется алгоритм
ed25519. Если он не поддерживается старой системой, используйтеrsa.
Warning
Если в
cmd.exeвы видите ошибку вида'cat' не является внутренней или внешней командой, это означает, что вы запустили инструкцию дляbash-совместимого терминала в классической командной строке Windows. Дляcmd.exeиспользуйте командуtype, для PowerShell —Get-Content.
Проверка существующих SSH-ключей
Перед созданием нового ключа проверьте, есть ли у вас уже каталог .ssh и готовая пара ключей.
macOS / Linux / Git Bash
ls -al ~/.sshWindows (cmd)
dir %USERPROFILE%\.sshWindows (PowerShell)
Get-ChildItem $env:USERPROFILE\.sshЕсли в списке уже есть файлы id_ed25519 и id_ed25519.pub или id_rsa и id_rsa.pub, можно использовать существующий ключ и перейти к следующему разделу.
Создание нового SSH-ключа
Рекомендуемая команда для всех ОС:
ssh-keygen -t ed25519 -C "your_email@example.com"Если ed25519 не поддерживается вашей системой, используйте RSA:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"где:
ssh-keygen— программа для генерации SSH-ключей;-t ed25519— тип ключа;-b 4096— длина RSA-ключа;-C "your_email@example.com"— комментарий к ключу, обычно указывают email.
-
Откройте терминал и выполните команду создания ключа.
-
Когда появится запрос
Enter file in which to save the key, нажмитеEnter, чтобы сохранить ключ в стандартный путь:C:\Users\<your_username>\.ssh\id_ed25519в Windows;/Users/<your_username>/.ssh/id_ed25519в macOS;/home/<your_username>/.ssh/id_ed25519в Linux.
Если вы хотите отдельный ключ только для GitVerse, можно указать свое имя файла, например
gitverse_ed25519. Тогда в следующих командах замените имя файла на свое.Если в этом месте система сообщает, что файл уже существует, не перезаписывайте старый ключ без необходимости. Лучше укажите новое имя файла.
-
Когда появится запрос
Enter passphrase, введите кодовую фразу или дважды нажмитеEnter, если не хотите ее задавать. -
После генерации у вас появятся два файла:
- закрытый ключ:
id_ed25519; - открытый ключ:
id_ed25519.pub.
- закрытый ключ:
Где обычно лежат SSH-ключи
- в Windows:
C:\Users\<your_username>\.ssh; - в macOS:
/Users/<your_username>/.ssh; - в Linux:
/home/<your_username>/.ssh.
Копирование открытого SSH-ключа
Для добавления ключа в GitVerse нужно скопировать содержимое файла .pub.
Info
SSH-ключ состоит из двух файлов: закрытого и открытого. В GitVerse добавляется только открытый ключ — файл с расширением
.pub. Закрытый ключ должен оставаться только на вашем компьютере.
macOS / Linux / Git Bash
cat ~/.ssh/id_ed25519.pubWindows (cmd)
type %USERPROFILE%\.ssh\id_ed25519.pubWindows (PowerShell)
Get-Content $env:USERPROFILE\.ssh\id_ed25519.pubЕсли вы создали ключ с другим именем, замените id_ed25519.pub на имя своего файла.
Info
Если вам неудобно копировать ключ через терминал, откройте файл
.pubв любом текстовом редакторе и скопируйте его содержимое оттуда.
Warning
В GitVerse нужно вставлять содержимое только открытого ключа
.pub. Закрытый ключ без расширения.pubпубликовать и передавать нельзя.
Добавление SSH-ключа в настройках учетной записи
-
Скопируйте содержимое открытого ключа.
-
Перейдите на GitVerse.
-
Нажмите на иконку профиля, затем Настройки.
-
На вкладке Ключи SSH/GPG нажмите Добавить SSH ключ.
-
Введите произвольное название ключа и вставьте содержимое открытого ключа.
-
Нажмите Добавить.
Подключение локального репозитория по SSH
Если репозиторий уже подключен по HTTPS, замените URL удаленного репозитория:
git remote set-url origin git@gitverse.ru:<username>/<repository_name>.gitПроверьте, что URL обновился:
git remote -vЕсли вы не хотите заменять HTTPS-адрес, можно добавить SSH как дополнительный URL:
git remote set-url --add origin git@gitverse.ru:<username>/<repository_name>.gitПосле этого Git сможет хранить для origin несколько URL. Подробности по синтаксису команды git remote set-url --add приведены в официальной документации Git.
Info
При первом подключении SSH-клиент может запросить подтверждение ключа сервера GitVerse. Перед подтверждением сверьте его с разделом Отпечатки SSH-ключей GitVerse.