2011-10-13 3 views
2

У меня есть сервер удаленного развития с репозиторием git.Git hook and ssh Пересылка агента

Когда я выхожу из локальной машины в этот dev-сервер, он запускает git-hook after-receive, чтобы развернуть ветку разработки на промежуточном сервере heroku.

Моя личность пересылается на сервер разработки, вот мой ~/.ssh/конфигурации

Host * 
    User myuser 
    ConnectTimeout 15 
    ServerAliveInterval 45 
    ForwardAgent yes 
    IdentityFile ~/.ssh/id_rsa 

Как я могу сделать это используется крючок для развертывания на Heroku?

На данный момент он не использует перенаправленный агент, но использует идентификатор ssh сервера разработки. Мы хотим избежать нажатия клавиши ssh на сервере, поскольку многие люди нажимают.

Большое спасибо за ваши идеи.

ответ

0

Поскольку вы подключаетесь к серверу разработки с вашим пользователем MyUser, мерзавец крючок должен также быть запущен как MyUser.

Если вы не создали SSH-пару ключей для подключения к Heroku перевалочного серверу с вашего сервера разработки для пользователя MyUser, что вам нужно сделать это.

<Login to your development server as myuser> 
ssh-keygen -t rsa 
<Upload the public key onto your heroku server's authorized_keys file> 

Вам нужно создать подобный ~/.ssh/конфигурации на сервере разработки для пользователя MyUser, который может быть использован крючок для подключения к серверу размещения.

И чтобы подтвердить, вы можете попробовать эту команду с сервера разработки, чтобы увидеть, если он может войти в систему в промежуточный сервер:

ssh heroku-staging-server 

Это должно быть все :)

+0

Спасибо за ваш вклад, мне было любопытно переадресовать один и тот же агент через многие сеансы ssh, не создавая ключей в середине (которые на самом деле являются новыми агентами). – albandiguer

1

Так что я добавил это в профиль моей сессии оболочки (например, профиль или bashrc conf), и он выполняет эту работу.

if [ ! -d /tmp/501 ]; then 
    mkdir /tmp/501 
    ssh-agent -a /tmp/501/ssh-agent.socket 
fi 

SSH_AUTH_SOCK=/tmp/501/ssh-agent.socket 
export SSH_AUTH_SOCK 
ssh-add ~/.ssh/id_rsa 

Надеюсь, это поможет кому-то.