#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