Работа по SSH

Info

Ключи SSH в Git используются для аутентификации при доступе к удаленным серверам через протокол Secure Shell (SSH). Они обеспечивают безопасный способ передачи данных между вашим компьютером и сервером, на котором хранится репозиторий Git.

Перед началом

  1. Команды зависят от терминала. Команда cat работает в macOS, Linux и Git Bash, но не в cmd.exe.
  2. Для новых ключей рекомендуется алгоритм ed25519. Если он не поддерживается старой системой, используйте rsa.

Warning

Если в cmd.exe вы видите ошибку вида 'cat' не является внутренней или внешней командой, это означает, что вы запустили инструкцию для bash-совместимого терминала в классической командной строке Windows. Для cmd.exe используйте команду type, для PowerShell — Get-Content.

Проверка существующих SSH-ключей

Перед созданием нового ключа проверьте, есть ли у вас уже каталог .ssh и готовая пара ключей.

macOS / Linux / Git Bash

    ls -al ~/.ssh

Windows (cmd)

dir %USERPROFILE%\.ssh

Windows (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.
  1. Откройте терминал и выполните команду создания ключа.

  2. Когда появится запрос 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. Тогда в следующих командах замените имя файла на свое.

    Если в этом месте система сообщает, что файл уже существует, не перезаписывайте старый ключ без необходимости. Лучше укажите новое имя файла.

  3. Когда появится запрос Enter passphrase, введите кодовую фразу или дважды нажмите Enter, если не хотите ее задавать.

  4. После генерации у вас появятся два файла:

    • закрытый ключ: 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.pub

Windows (cmd)

    type %USERPROFILE%\.ssh\id_ed25519.pub

Windows (PowerShell)

Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub

Если вы создали ключ с другим именем, замените id_ed25519.pub на имя своего файла.

Info

Если вам неудобно копировать ключ через терминал, откройте файл .pub в любом текстовом редакторе и скопируйте его содержимое оттуда.

Warning

В GitVerse нужно вставлять содержимое только открытого ключа .pub. Закрытый ключ без расширения .pub публиковать и передавать нельзя.

Добавление SSH-ключа в настройках учетной записи

  1. Скопируйте содержимое открытого ключа.

  2. Перейдите на GitVerse.

  3. Нажмите на иконку профиля, затем Настройки.

  4. На вкладке Ключи SSH/GPG нажмите Добавить SSH ключ.

  5. Введите произвольное название ключа и вставьте содержимое открытого ключа.

  6. Нажмите Добавить.

Подключение локального репозитория по 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.