Отказано в разрешении (публичный ключ) при развертывании capifony из окон с удаленным хостом gitlab

Я пытаюсь настроить развертывание с моего локального компьютера с Windows через gitlab на мой сервер с помощью capifony.

Обычно я подключаюсь к моему серверу по ssh и запускаю команду с сервера. Теперь я хочу сделать это со своего локального компьютера.

Я уже отправляю код со своего локального компьютера в gitlab с помощью git, т.е. мой открытый ключ зарегистрирован на gitlab.

Однако здесь он не работает с capifony. В чем может быть проблема ?

Ошибка :

D:\Divers\Programmation\Web\foodmeup.dev>cap development deploy
 ** transaction: start
--> Updating code base with remote_cache strategy
*** [deploy:update_code] rolling back
 ** [deploy:update_code] exception while rolling back: Capistrano::ConnectionError, connection failed for: my_server_ip (ArgumentError: Could not parse PKey: no start line)
connection failed for: my_server_ip (ArgumentError: Could not parse PKey: no start line)

РЕДАКТИРОВАТЬ:

Если я следую инструкциям, приведенным в нескольких сообщениях, и добавлю в свой deploy.rb следующие параметры

ssh_options[:keys] = %w('~/.ssh/id_rsa')

or

ssh_options[:keys] = %w('~/.ssh/id_rsa.pub')

Затем меня просят ввести пароль root, и я все еще получаю сообщение об ошибке (несмотря на то, что я могу войти в систему через ssh напрямую с помощью putty и что запуск развертывания с моего сервера с другим пользователем работает без ввода пароля root):

D:\Divers\Programmation\Web\foodmeup.dev>cap preprod deploy
 ** transaction: start
--> Updating code base with remote_cache strategy
root@my_server_ip's password:
 ** [my_server_ip  :: err] Error reading response length from authentication socket.
 ** [my_server_ip  :: err] Permission denied (publickey).
 ** [my_server_ip  :: err] fatal: Could not read from remote repository.
 **
 ** Please make sure you have the correct access rights
 ** and the repository exists.
*** [deploy:update_code] rolling back
failed: "sh -c 'if [ -d /home/foodmeup.net/preprod/shared/cached-copy ]; then cd /home/foodmeup.net/preprod/shared/cached-copy && git fetch -q origin && git fetch --tags -q origin && git reset -q --ha
rd f52737bb09edbd968319400e2d535f467c42b04c && git clean -q -d -x -f; else git clone -q -b preprod [email protected]:svassaux/foodmeup.git /home/foodmeup.net/preprod/shared/cached-copy && cd /home/foodme
up.net/preprod/shared/cached-copy && git checkout -q -b deploy f52737bb09edbd968319400e2d535f467c42b04c; fi'" on my_server_ip  

person Sébastien    schedule 31.07.2015    source источник
comment
Вы используете пути UNIX / Linux на машине с Windows?   -  person Marcos Pérez Gude    schedule 11.08.2015
comment
ну, я пробовал с ssh_options [: keys] = 'C: \ Users \ Sébastien \ .ssh \ id_rsa.pub', но он тоже не работает ...   -  person Sébastien    schedule 12.08.2015


Ответы (2)


Как упоминалось в этой проблеме, одна из возможных причин:

Моя проблема заключалась в том, что мне нужно было заключить местоположение моего файла ssh-ключа в кавычки в моем config/deploy.rb файле, например:

ssh_options[:keys] = %w('~/.ssh/id_rsa.pub')

вместо:

ssh_options[:keys] = %w(~/.ssh/id_rsa.pub)

Также:

Я получаю эту ошибку, даже если не устанавливаю ssh_options[:keys] в своем deploy.rb.

Or:

Эта проблема может быть вызвана закрытым ключом ssh с парольной фразой и отсутствием открытого ключа ssh.

(также упоминается в issues / 101)

Попробуйте удалить ssh_options[:keys] и вызовите следующую команду:

ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub

Это приводит к:

Я запустил ProcessMonitor и обнаружил, что процесс ruby ​​пытается загрузить файл ~.ssh\key.pub.pub, который дал Мне кажется, что путь к приватному (не публичному) ключу должен быть в ssh_config['keys'].

Итак, это должно работать:

ssh_options[:keys] = %w('~/.ssh/id_rsa')

Читайте также ArgumentError: не удалось проанализировать PKey: нет запуска линия

person VonC    schedule 04.08.2015
comment
Привет, спасибо за попытку подвести итоги. Я уже все это пробовал, и это пока не решает мою проблему. Я внес правку. может ты понимаешь что происходит? - person Sébastien; 06.08.2015
comment
@ Себастьен Я вижу, у вас есть два ssh_options[:keys]: оставьте только один, тот, у которого есть закрытый ключ. Как я уже упоминал в своем ответе. - person VonC; 06.08.2015
comment
конечно, я написал слишком быстро, я пробовал оба, но получаю ту же ошибку: он запрашивает пароль root, а затем терпит неудачу. У меня не спрашивают пароль root при развертывании с самого сервера или когда я подключаюсь к моему серверу из замазки ... Я не понимаю, чего здесь не хватает - person Sébastien; 06.08.2015
comment
@ Sébastien Есть ли разница в используемой учетной записи между вашим тестом из putty, который работает, и вашим локальным сеансом, который объясняет, что ключи ssh не найдены там, где ожидалось? - person VonC; 06.08.2015
comment
нет объяснения, потому что я также могу использовать командную строку Windows для нажатия на git без необходимости определять местоположение для моих ключей - person Sébastien; 13.08.2015

Установите ssh_options[:keys] = %w('~/.ssh/id_rsa'), не устанавливайте ssh_options[:keys] = %w('~/.ssh/id_rsa.pub')

person J-16 SDiZ    schedule 06.08.2015