Git Pull без ввода пароля закрытого ключа - PullRequest
2 голосов
/ 07 сентября 2011

Я собираюсь установить cronjob для изменений git pull на моем тестовом веб-сервере. Но мой закрытый ключ имеет пароль. Как я могу передать его в качестве аргумента?

git pull something mypassword

Я хочу использовать его для выполнения задания и не хочу оставлять закрытый ключ без пароля.

Спасибо

Ответы [ 4 ]

2 голосов
/ 07 сентября 2011

Вы не хотите оставлять закрытый ключ без пароля, но у вас нет проблем с сохранением пароля в описании задания cron?Это кажется немного странным.

Возможно, вы сможете сделать это с помощью ssh-agent (не уверен, но найдите его), но, откровенно говоря, я нахожу это немного глупым.

1 голос
/ 07 сентября 2011

Нет проблем.keychain это то, что вам нужно.Вы должны быть в состоянии найти его в своем дистрибутиве.Существует руководство для Gentoo Linux.

0 голосов
/ 12 января 2018

Вы можете создать ожидаемый сценарий, который предоставит пароль при необходимости.Примерно так:

#!/usr/bin/expect --

set password ssh-key-password

spawn git pull
expect "Enter passphrase*:" {send "$password\r"}

Возможно, вам понадобится включить

expect eof

в конце скрипта

0 голосов
/ 08 сентября 2011

Вам нужен доступ только для чтения.Для этого через SSH:

  1. Создайте пользователя на удаленном сервере, который имеет только для чтения доступ к пути к хранилищу.
  2. Войдите в систему с этим пользователем через SSH и подтвердите , что вы можете читать файлы (less /path/to/repo/.git/config), но не можете писать (touch /path/to/repo/.git/config должен произойти сбой).
  3. Создать ключ SSH без пароля в пути, читаемом cron.
  4. Включить вход без пароля с помощью ssh-copy-id -i /path/to/passwordless/id.pub cron-user@server.example.com
  5. Добавить eval $(ssh-agent); ssh-add /path/to/passwordless/id; в началесценария, указанного в crontab.

Это должно сделать это.

...