Вот моя настройка:
- Jenkins работает на моей Linux-машине как пользователь jenkins.
- Я создал пару ключей ssh, как описано в Linux - Setup Git, для пользователя jenkins.
- Когда я
sudo su jenkins
и попробуюssh -vT [email protected]
, я всегда спрашиваю свою кодовую фразу, но я всегда в конце концов аутентифицирован. (параметр verbose показывает, какой ключ используется, среди прочих). - Я мог бы клонировать свое репо из GitHub, используя jenkins:
Thusly:
[email protected]:~/jobs/test git/workspace$ git pull
Enter passphrase for key '/var/lib/jenkins/.ssh/id*_rsa':
Already up-to-date.
До этого момента я следил за инструкциями к письму. Проблема в том, что сбой Jenkins с ошибкой:
status code 128:
stdout:
stderr: Permission denied (publickey).
fatal: The remote end hung up unexpectedly
Это та же ошибка, что и я, когда я опечатываю парольную фразу (но, разумеется, Дженкинс не спрашивает у меня парольную фразу). Следующие страницы:
укажите мне, что ssh-agent может помочь запомнить кодовую фразу, которую он делает, когда я использую своего пользователя, но не идентификатор jenkins. Обратите внимание, что во время работы, когда мой обычный пользователь дает:
echo "$SSH_AUTH_SOCK"
/tmp/keyring-nQlwf9/ssh
При выполнении той же команды, что и мои "дженкинсы" ничего не дают (даже разрешение не разрешено)
Мое понимание проблемы заключается в том, что кодовая фраза не запоминается. Есть ли у вас какие-либо идеи? Должен ли я запускать ssh-agent или менеджер ключей для пользователя jenkins? Как? Или пересылка ssh подходит для пересылки на ту же машину? Любая яркая идея?
ps: Я никогда sudo gitted
, я всегда пользовался jenkins или моей учетной записью пользователя (как упоминалось в этом сообщении SO - Проблема Ubuntu/GitHub SSH Key)