質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.82%

  • Ruby on Rails

    6410questions

    Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

  • Capistrano

    100questions

    Rubyで書かれたサーバオーケストレーションで、複数のサーバでスクリプトを実行する際に用いられます。主な使用用途はWebアプリケーションのデプロイメントです。 アプリケーションのバージョンアップ自動化、およびデータベースの変更などもできます。

rails Capistranoでのデプロイでパーミッションエラーとなってしまう

受付中

回答 0

投稿

  • 評価
  • クリップ 1
  • VIEW 99

ruby_0ct

score 29

以下のQiitaを参考にしながら、capistranoでデプロイを行おうとしているのですが、サーバからGithubへの接続でパーミッションエラーとなってしまいます。
Qiita - Conoha vpsサーバーにCentOS6.9 + Rails5系 + MySQL + nginx + unicorn + capistranoでデプロイまで

Qiitaにある項目の7番「capistranoからデプロイ!」でデプロイ可能かチェックするコマンド
bundle exec cap production deploy:check # deploy可能かのチェック
を実行すると、

00:00 git:check
      01 git ls-remote git@github.com:〇〇/〇〇.git HEAD
      01 Permission denied (publickey).
      01 fatal: Could not read from remote repository.
      01
      01 Please make sure you have the correct access rights
      01 and the repository exists.
#<Thread:0x00007fb5c8945f90@/Users/macbookpro/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sshkit-1.16.0/lib/sshkit/runners/parallel.rb:10 run> terminated with exception (report_on_exception is true):
Traceback (most recent call last):
    1: from /Users/macbookpro/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sshkit-1.16.0/lib/sshkit/runners/parallel.rb:11:in `block (2 levels) in execute'
/Users/macbookpro/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sshkit-1.16.0/lib/sshkit/runners/parallel.rb:15:in `rescue in block (2 levels) in execute': Exception while executing as root@サーバのIPアドレス: git exit status: 128 (SSHKit::Runner::ExecuteError)
git stdout: Nothing written
git stderr: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
      01 Permission denied (publickey).
      01 fatal: Could not read from remote repository.
      01
      01 Please make sure you have the correct access rights
      01 and the repository exists.
#<Thread:0x00007fb5c8946148@/Users/macbookpro/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sshkit-1.16.0/lib/sshkit/runners/parallel.rb:10 run> terminated with exception (report_on_exception is true):
Traceback (most recent call last):
    1: from /Users/macbookpro/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sshkit-1.16.0/lib/sshkit/runners/parallel.rb:11:in `block (2 levels) in execute'
/Users/macbookpro/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sshkit-1.16.0/lib/sshkit/runners/parallel.rb:15:in `rescue in block (2 levels) in execute': Exception while executing as root@サーバのドメイン名: git exit status: 128 (SSHKit::Runner::ExecuteError)
git stdout: Nothing written
git stderr: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
(Backtrace restricted to imported tasks)
cap aborted!
SSHKit::Runner::ExecuteError: Exception while executing as root@サーバのドメイン名: git exit status: 128
git stdout: Nothing written
git stderr: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.


Caused by:
SSHKit::Command::Failed: git exit status: 128
git stdout: Nothing written
git stderr: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Tasks: TOP => deploy:check => git:check
(See full trace by running task with --trace)


パーミッションエラーが出てしまいます。
サーバ側・クライアント側共にssh-agentに秘密鍵は追加済みでも、エラーが出る原因がわかりません。
解決策を教えて頂けると助かります。

ちなみにssh -T git@github.comコマンドでは接続を確認しています。

 そのほかに行ったこと

ssh-agentのエージェント転送機能を利用する。
Capistranoによるデプロイで発生したgithub接続エラーを解決する

サーバ側の.ssg/configファイルの内容を変更。
Qiita - いきなりcapistranoでdeployができなくなった時の対処法

 環境

CentOS7
Nginx 1.12.2
unicorn
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
Rails 5.2.0

 ファイル

Gemfile

gem 'unicorn'
gem 'capistrano'
gem 'capistrano3-unicorn'
gem 'capistrano-rails'
gem 'capistrano-bundler'
gem 'capistrano-rbenv'

Capfile

require "capistrano/setup"
require "capistrano/deploy"
require "capistrano/scm/git"
install_plugin Capistrano::SCM::Git

require "capistrano/rbenv"
require "capistrano/bundler"
require "capistrano/rails/assets"
require "capistrano/rails/migrations"
require "capistrano/setup"
require "capistrano/scm/git"
require 'capistrano3/unicorn'

set :ssh_options, {
  keys: %w(/Users/macbookpro/.ssh/github/id_rsa),
  forward_agent: true,
}

Dir.glob("lib/capistrano/tasks/*.rake").each { |r| import r }

config/deploy.rb

lock "~> 3.10.2"

set :application, "アプリケーション名"
set :repo_url, "git@github.com:〇〇/〇〇.git"

set :deploy_to, '/var/www/test'

append :linked_files, "config/database.yml"
set :linked_files, %w{config/database.yml config/secrets.yml}
set :linked_dirs, %w{bin log tmp/pids tmp/cache sockets bundle public/system public/assets}

set :unicorn_pid, "#{shared_path}/tmp/pids/unicorn.pid"

 set :ssh_options, { verify_host_key: :secure, forward_agent: true }
 set :rbenv_type, :user
 set :rbenv_ruby, '2.5.1'
 set :rbenv_path, '/usr/local/rbenv'
 set :log_level, :debug

config/deploy/production.rb

set :branch, 'master'
server "ドメイン名", user: "root", roles: %w{app db web}

role :app, %w{root@サーバのIPアドレス}
role :web, %w{root@サーバのIPアドレス}
role :db, %w{root@サーバのIPアドレス}
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.82%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Ruby on Rails

    6410questions

    Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

  • Capistrano

    100questions

    Rubyで書かれたサーバオーケストレーションで、複数のサーバでスクリプトを実行する際に用いられます。主な使用用途はWebアプリケーションのデプロイメントです。 アプリケーションのバージョンアップ自動化、およびデータベースの変更などもできます。