Переключение между SSH ключами в GitHub

Есть несколько причин следующей ошибки, при попытке подключения к репозиторию в GutHub:

ERROR: Repository not found.
fatal: Could not read from remote repository.

Самые распространенные причины - ключи не добавлены в аккаунт GitHub или неправильно настроены на локальном компьютере. Но я столкнулся с другой ситуацией, и алгоритм решения не был описан в интернете.

У меня было несколько ключей для доступа к разным репоизториям. Как переключаться между SSH ключами?

Если вы не уверены, что у вас установлены SSH ключи, посмотрите эту статью: Настройка SSH ключей для Github

Смена SSH ключей в GitHub

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

  1. Выведем логи подключения, чтобы убедиться что само подключение выполняется корректно
    ssh -v git@github.com
  2. Нужно будет ввести кодовую фразу
  3. Если есть вот такой ответ, значит подключение удалось, но ключ не подошел
    You've successfully authenticated, but GitHub does not provide shell access
  4. Нужно прописать путь до ваших ключей, например
    ssh-add ~/.ssh/my-key/mykey
  5. Если вы видите ошибку
    Could not open a connection to your authentication agent.
  6. Нужно запустить SSH агент
    eval "$(ssh-agent -s)"
  7. В ответ получите (число может быть любое, это не важно)
    Agent pid 1111
  8. Снова повторяем
    ssh-add ~/.ssh/my-key/mykey
  9. Вводим фразу и видим
    Identy added: ... (your@mail.com)

Выбрать SSH ключи по умолчанию

Ключ по умолчанию указан в файле ~/.ssh/config в значении IdentityFile

Host *
IdentityFile ~/.ssh/название_ключа

Автозапуск ssh-agent при открытии консоли

Ключи будут выбираться автоматически и запрашивать passphrase, для этого нужно в файле ~/.bash_profile указать:

if [ -z "$SSH_AUTH_SOCK" ] ; then
  eval `ssh-agent -s`
  ssh-add ~/.ssh/название_ключа
fi
Перейти к верхней панели