Git push на пульт, для которого требуется ssh-ключ

#git #ssh #deployment

#мерзавец #ssh #развертывание

Вопрос:

Сбой развертывания на моем удаленном сервере с ошибкой «отказано в разрешении»:

 git push prod master
 

Ошибка

 deploy@<IP>: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
 

Я могу подключиться к серверу по ssh:

 $ ssh my_server
 

Который я настроил в ~/.ssh/config.

 Host my_server
    HostName <IP>
    User deploy
    IdentityFile ~/.ssh/my_server_rsa
 

Ранее я развертывал аутентификацию по паролю следующим образом.

 $ git remote add prod deploy@<IP>:app_prod
$ git push prod master
 

А затем при появлении запроса ввел пароль.
Но теперь, когда я переключился на ssh-ключ, мои развертывания завершаются неудачей.

Итак, мой вопрос в том, как мне git push использовать ~/.ssh/config ?

Я не могу понять, как заставить это работать, и не знаю, что поискать в Google, чтобы найти пример. Вероятно, здесь отсутствует что-то очень простое…

Комментарии:

1. Вы обновили удаленный URL, т.Е. git remote set-url prod ssh://my_server/path/to/repo.git ?

Ответ №1:

Конфигурационный файл с my_server Host записью означает, что это ярлык для:

 ssh -i  ~/.ssh/my_server_rsa deploy@<IP>
 

Итак, чтобы использовать его, как указано в комментариях, вам необходимо, чтобы URL-адрес удаленного продукта использовал эту my_server запись конфигурации:

 git remote set-url prod my_server:/path/to/repo
# or
git remote set-url prod ssh://my_server/path/to/repo