ssh-keygen -t ed25519 -C "your_email@example.com"
(Замініть your_email@example.com
на вашу електронну пошту GitHub.)
- Коли з'явиться запит "Enter file in which to save the key", натисніть Enter, щоб зберегти ключ у стандартному розташуванні (
~/.ssh/id_ed25519
). - Коли з'явиться запит на парольну фразу, можете або встановити її, або натиснути Enter, щоб залишити поле порожнім.
Переконайтеся, що агент SSH запущений:
eval "$(ssh-agent -s)"
Потім додайте свій SSH-ключ:
ssh-add ~/.ssh/id_ed25519
Якщо виникає помилка запуску агента (error:1058
або "Access is denied"), спробуйте:
Get-Service ssh-agent | Set-Service -StartupType Manual
Start-Service ssh-agent
Отримайте публічний ключ:
cat ~/.ssh/id_ed25519.pub
Скопіюйте ключ.
- Перейдіть у GitHub SSH Keys.
- Натисніть "New SSH Key".
- У полі "Title" введіть щось на кшталт
Мій ноутбук SSH Key
. - У полі "Key" вставте скопійований ключ.
- Натисніть "Add SSH Key".
Виконайте команду:
ssh -T git@github.com
Коли ви вперше підключаєтеся до git@github.com через SSH, Git перевіряє, чи є GitHub у вашому списку довірених хостів (~/.ssh/known_hosts). Якщо його там немає, система запитує підтвердження:
The authenticity of host 'github.com (IP_ADDRESS)' can't be established.
ED25519 key fingerprint is SHA256:************.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
Коли ви вводите yes, SSH додає GitHub до файлу known_hosts, щоб у майбутньому не питати підтвердження при кожному з'єднанні. Якщо все працює, ви побачите:
Hi <your-github-username>! You've successfully authenticated, but GitHub does not provide shell access.
Якщо у вас ще немає репозиторію, створіть його:
git init
Додайте файли та зробіть перший коміт:
git add .
git commit -m "Initial commit"
Якщо репозиторій ще не підключений, перевірте його адресу:
git remote -v
Якщо віддалений репозиторій не вказаний, додайте його:
git remote add origin git@github.com:your-github-username/repository.git
Спробуйте виконати команду push:
git push -u origin main
Якщо ви отримали помилку src refspec main does not match any
, спочатку зробіть коміт:
git commit -m "Initial commit"
Якщо git push
відхилено через зміни на віддаленому сервері:
git pull --rebase origin main
Після успішного злиття змін виконайте:
git push origin main
Якщо ви хочете перезаписати віддалений репозиторій (
git push --force origin main
Важливо: Форсований пуш видалить віддалені зміни, тому використовуйте його лише в крайніх випадках.