Добавление SSH-ключей в Linux
Чтобы запушить изменения в репозиторий на Github, необходимо ввести имя пользователя и пароль. Чтобы не делать этого каждый раз, необходимо настроить SSH-ключ. Сделать это можно следующим образом:
Создайте SSH-ключ
Создайте SSH-ключ, введя следующую команду в терминале (в кавычках укажите свою почту):
ssh-keygen -t ed25519 -C "your_email@gmail.com",
где ssh-keygen — инструмент для генерации SSH-ключей, -t указывает тип ключа, а -C "your_email@example.com" — комментарий, в котором почта используется для идентификации.
Вам предложат самостоятельно выбрать файл, в который сохранять ключ. Нажмите Enter, чтобы оставить настройки по умолчанию.
~/.ssh/id_rsa— приватный ключ (его нельзя никому передавать).~/.ssh/id_rsa.pub— публичный ключ (его нужно добавить на GitHub).
Добавьте SSH-ключ на GitHub
Вывести публичный ключ можно следующей командой:
Скопируйте его и добавьте на GitHub в настройках.
Если вы видете вот такое сообщение об ошибке:
Key is invalid. You must supply a key in OpenSSH public key format
то проверте, правильно ли вы скопировали ключ.
Проверьте подключение
Далее необходимо проверить подключение.
ssh -T git@github.com
Возможно, вы увидете следующее сообщение:
The authenticity of host 'github.com (140.82.121.4)' can't be established. ED25519 key fingerprint is SHA256:*********************************. This key is not known by any other names. Are you sure you want to continue connecting (yes/no/[fingerprint])?
Warning: Permanently added 'github.com' to the list of known hosts. Connection reset by 140.82.121.4 port 22
ssh -T git@github.com
Должен появиться следующий текст:
Hi username! You've successfully authenticated, but GitHub does not provide shell access.
Следующая команда выводит список удалённых репозиториев, с которыми связан репозиторий локальный.
Если он начинается с https://, то его необходимо поменять на SSH:
git remote set-url origin git@github.com:username/repository.git,
где вместо username и repository укажите своё имя пользователя на Github и название репозитория соотвественно. Теперь git remote -v должна выводить следующее:
origin git@github.com:username/repository.git (fetch)
origin git@github.com:username/repository.git (push)
Теперь вы можете использовать команду git push, не вводя имя пользователя и пароль.