Назад | Перейти на главную страницу

Разрешить ssh доступ к git pull на удаленном компьютере

У нас есть сервер с некоторыми из наших репозиториев git, и я хотел бы иметь возможность клонировать его на наш веб-сервер (на котором работает debian). Я побежал ssh-keygen на веб-сервере и скопировал открытый ключ в authorized_keys на gitserver, и теперь я могу успешно подключиться к gitserver по ssh с веб-сервера:

ssh -T user@gitserver.com

И он войдет в меня. Однако, если я вызову git clone на веб-сервере:

sudo git clone user@gitserver.com:/dir/repo.git

Я получаю такой ответ:

Permission denied (publickey).
fatal: The remote end hung up unexpectedly

Кто-нибудь знает, почему это происходит? Я читал, что должен разрешить ForwardAgent в / etc / ssh_config на моем локальном компьютере (под управлением Max OS X), что я сделал, но не устранил проблему.

Вы не вызов git clone; ты звонишь sudo который переключается на совершенно другую учетную запись Unix (root) и только затем звонки git clone.

Результат, как вы также заметили с sudo ssh -v ..., в том, что ssh ищет закрытые ключи в каталогах, принадлежащих пользователю root, а не вам. поскольку sudo по умолчанию очищает окружающую среду, ssh также не может использовать ваш агент SSH, поскольку SSH_AUTH_SOCK переменная окружения удаляется.

Поскольку у вас включена переадресация агента, попробуйте sudo -E ssh ... чтобы сохранить все переменные среды.