2016-04-15 5 views
0

Я пытаюсь автоматизировать процесс развертывания. Мой проект находится в mercurial repo. У меня есть локальная машина LOCAL с пользователем LOCAL_USER и ssh-key (~/.ssh/KEY_LOCAL). Также у меня есть удаленный сервер REMOTE с пользователем REMOTE_USER и ssh-key ('~/.ssh/KEY_REMOTE').Ткань/питон. Запуск удаленной команды с локальным sshkey

env.hosts = ['REMOTE'] 
env.user = 'REMOTE_USER' 

def pull(): 
    with cd(repo_path): 
     run('hg pull -u') 

Я могу подключиться к серверу REMOTE, но ¯hG пытается использовать REMOTE_USER.

Можно ли использовать hg на REMOTE SERVER с LOCAL_USER + SSH_KEY_LOCAL?

ответ

1

Mercurial на сервере REMOTE не имеет доступа к ssh-ключу LOCAL. Хотя может быть какой-то способ скопировать его на лету или сделать какой-то странный монтаж, я бы посоветовал это сделать.

Что вам нужно сделать, это создать отдельный секретный ключ на сервере REMOTE, а затем скопировать его открытый ключ на ваш сервер Mercurial для пользователя LOCAL_USER. Таким образом, у вас будет один пользователь с двумя разными открытыми ключами на сервере Mercurial, причем каждый отдельный ключ находится в другом поле.

Если вы доверяете серверу REMOTE% 100, вы можете просто скопировать текущий закрытый ключ, но это, как правило, не очень хорошая идея.

+0

Спасибо, это хорошая идея. –