2015-07-31 8 views
4

Я пытаюсь настроить развертывание с моего локального компьютера Windows через gitlab на мой сервер, используя capifony.Permission denied (publickey) при развертывании capifony из окон с удаленным хостом gitlab

Обычно я подключался 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) 

EDIT:

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

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

или

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 
[email protected]_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 
+0

Вы используете пути UNIX/Linux на машине Windows? –

+0

ну, я пробовал с ssh_options [: keys] = 'C: \ Users \ Sébastien \ .ssh \ id_rsa.pub', но он тоже не работает ... –

ответ

0

Как уже упоминалось в this issue, одна возможная причина:

Моя проблема заключалась в том, что мне нужно, чтобы вложить свой 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.

Или:

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

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

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

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

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

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

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

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

Читайте также ArgumentError: Could not parse PKey: no start line

+0

Привет, спасибо за это усилие суммирования всех. Я уже пробовал все это, и это еще не решило мою проблему. Я сделал редактирование. может быть, вы понимаете, что происходит? –

+0

@ Sébastien Я вижу, что у вас есть два 'ssh_options [: keys]': сохранить только один, тот, у которого есть закрытый ключ. Как я уже упоминал в своем ответе. – VonC

+0

уверен, я написал слишком быстро, я попробовал оба, но я получаю ту же ошибку: он запрашивает пароль root, а затем он терпит неудачу. Я не просил пароль root при развертывании с самого сервера и когда я подключаюсь к моему серверу из шпатлевки ... Я не понимаю, что здесь отсутствует –

0

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

+0

уверен, я пробовал один и другой, ни одна работа –