в джобу, но при деплое гитлаб не видит эту переменную
$ ssh-add <(echo "$SSH_PRIVATE_KEY")
Enter passphrase for /dev/fd/63:
Cleaning up project directory and file based variables
ERROR: Job failed: exit code 1
Хотя когда добавляю приватный ключ от судо, все норм.
Что может быть не так?
Вот тут рабочий пример : https://gitlab.com/gitlab-examples/ssh-private-key/-/blob/master/.gitlab-ci.yml
попробуйте убрать одинарную кавычку и восклицательные знаки
проще просто сгенерировать новый без пароля
мне нужно от конкретного пользователя на сервере заходить. я от него сгенерил новый пароль, но у меня нет пермишинов на выполнение команд $ ssh user@x.x.x.x -tt -o StrictHostKeyChecking=no 'cd /var/www/html2; cp -pr hr-tool hr-tool_backup; cd hr-tool/ && git checkout master && git pull origin master' Warning: Permanently added 'x.x.x.x' (ECDSA) to the list of known hosts. Permission denied, please try again. Permission denied, please try again. Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password). Cleaning up project directory and file based variables 00:02 ERROR: Job failed: exit code 1
значит, у $SSH_USER на сервере ключ не добавлен. а восклицательные знаки в двойных кавычках шелл интерпретирует как встроенную команду
тут тоже, похоже, публичный ключ в /home/user/.ssh/authorized_keys на сервере не добавлен
тут не совсем понял. я приватный ключ добавляю в variables в гитлабе, а публичный куда нужно добавить?
Ну, он уже ругается на npm. Идёшь же ты под пользователем, а там вероятно файлы с рутовыми правами
пароль просит
для отладки удобно добиться сначала успешного подключения с консоли с тем же приватным ключом. т. е. ssh -i your.key user@server
а как настроить руут права на gitlab пользователь ? https://stackoverflow.com/questions/49004853/gitlab-ci-gitlab-runner-run-as-root попробовал вот так , но не сработал
в systemd конфиге поменяй пользователя на рута
да, удалось подключиться. но у этого человека ключик запороленный, и при git pull просит пароль.
ну вот проще сгенерить беспарольный ключ. Либо пароль вынести тоже в переменную, и его задавать на stdin или через expect(1)
Обсуждают сегодня