Для регистрации на github НЕ используйте почту с российским доменом (например, yandex.ru), иначе после прохождения капчи вас вернет обратно на начальный этап регистрации.

Шаг 1: Генерация SSH-ключа (алгоритм ED25519)

  1. Откройте PowerShell.
  2. Сгенерируйте SSH-ключ: ssh-keygen -t ed25519 -C "your_email@example.com"

Ключи по умолчанию будут сохранены в C:\Users\YourUserName\.ssh\id_ed25519.

  1. Введите фразу-пароль (будет запрашиваться при попытке использования ключа, дополнительная гарантия безопасности на случай, если ваш ключ будет скомпроментирован) или пропустите этот шаг.

Шаг 2: Настройка файла known_hosts

  1. Создайте или откройте файл known_hosts: Откройте файл known_hosts в текстовом редакторе, который поддерживает UTF-8, например, в Notepad++ или Visual Studio Code. По умолчанию файл должен находиться в директории C:\Users\YourUserName\.ssh\.
  2. Используйте ssh-keyscan с преобразованием кодировки: Выполните команду в PowerShell, чтобы добавить fingerprint в known_hosts с корректной кодировкой:
ssh-keyscan github.com | Out-File -Encoding utf8 ~/.ssh/known_hosts

Эта команда добавляет fingerprint для GitHub и сохраняет его в файл known_hosts в правильной кодировке UTF-8.

Примечание: Если вы хотите добавить несколько хостов, выполните команду для каждого из них:

ssh-keyscan host1.com | Out-File -Append -Encoding utf8 ~/.ssh/known_hosts
ssh-keyscan host2.com | Out-File -Append -Encoding utf8 ~/.ssh/known_hosts

Шаг 3: Настройка файла config

  1. Создайте или отредактируйте файл config: Откройте ~/.ssh/config (обычно C:\Users\YourUserName\.ssh\config) и добавьте:
Host github.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_ed25519

Если добавляете другие хосты (например, для собственного git-сервера), создавайте отдельные секции Host для каждого из них.

Шаг 4: Добавление SSH-ключа в GitHub

  1. Скопируйте публичный ключ:
Get-Content ~/.ssh/id_ed25519.pub | Set-Clipboard
  1. Добавьте ключ на GitHub:

Шаг 5: Тестирование подключения

  1. Проверьте подключение:
ssh -T git@github.com

Успешное подключение отобразит сообщение: Hi username! You've successfully authenticated, but GitHub does not provide shell access.