Для регистрации на github НЕ используйте почту с российским доменом (например, yandex.ru
), иначе после прохождения капчи вас вернет обратно на начальный этап регистрации.
Шаг 1: Генерация SSH-ключа (алгоритм ED25519)
- Откройте PowerShell.
- Сгенерируйте SSH-ключ:
ssh-keygen -t ed25519 -C "your_email@example.com"
Ключи по умолчанию будут сохранены в
C:\Users\YourUserName\.ssh\id_ed25519
.
- Введите фразу-пароль (будет запрашиваться при попытке использования ключа, дополнительная гарантия безопасности на случай, если ваш ключ будет скомпроментирован) или пропустите этот шаг.
Шаг 2: Настройка файла known_hosts
- Создайте или откройте файл
known_hosts
: Откройте файл known_hosts в текстовом редакторе, который поддерживает UTF-8, например, в Notepad++ или Visual Studio Code. По умолчанию файл должен находиться в директорииC:\Users\YourUserName\.ssh\
. - Используйте 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
- Создайте или отредактируйте файл
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
- Скопируйте публичный ключ:
Get-Content ~/.ssh/id_ed25519.pub | Set-Clipboard
- Добавьте ключ на GitHub:
- Перейдите в настройки SSH-ключей.
- Нажмите "New SSH key", вставьте скопированный ключ и сохраните его.
Шаг 5: Тестирование подключения
- Проверьте подключение:
ssh -T git@github.com
Успешное подключение отобразит сообщение: Hi username! You've successfully authenticated, but GitHub does not provide shell access.