gpt4 book ai didi

ruby-on-rails - Rails : Capistrano. 权限被拒绝(公钥)

转载 作者:行者123 更新时间:2023-12-04 21:51:37 25 4
gpt4 key购买 nike

我一直在寻找一种使用 capistrano 部署我的应用程序的方法。我目前在 github 和本地服务器上托管一个小型私有(private)仓库来尝试部署我的测试。我在下面遇到问题和错误消息。

我做了以下

  • 在服务器上生成一个 ssh key 并成功添加它以在 repo 中部署 key 并测试(git@github.com)
  • 在客户端生成 ssh key 并成功添加以在 repo
  • 中部署 key
  • 设置一个私有(private)存储库。并拥有拥有部署权限的帐户部署者
  • 配置 deploy.rb 和 production rb 以模仿许多其他模板。

  • 我仍然无法弄清楚为什么它会给我这样的错误
        DEBUG [a5554d3d] Command: /usr/bin/env chmod +x /tmp/App/git-ssh.sh
    INFO [a5554d3d] Finished in 0.020 seconds with exit status 0 (successful).
    INFO [b1517df1] Running /usr/bin/env git ls-remote --heads git@github.com:aceofw
    ings/App.git as deploy@192.168.1.84
    DEBUG [b1517df1] Command: ( GIT_ASKPASS=/bin/echo GIT_SSH=/tmp/App/git-ssh
    .sh /usr/bin/env git ls-remote --heads git@github.com:aceofwings/App.git )

    DEBUG [b1517df1] Permission denied (publickey).
    DEBUG [b1517df1] fatal: Could not read from remote repository.
    DEBUG [b1517df1]
    DEBUG [b1517df1] Please make sure you have the correct access rights
    DEBUG [b1517df1] and the repository exists.
    (Backtrace restricted to imported tasks)
    cap aborted!
    SSHKit::Runner::ExecuteError: Exception while executing as deploy@192.168.1.84:
    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.

    SSHKit::Command::Failed: git exit status: 128
    git stdout: Nothing written

    Deploy.rb 文件
       ###############Deploy.rb##################
    # config valid only for current version of Capistrano
    lock '3.4.0'

    set :repo_url, 'git@github.com:aceofwings/App.git'
    set :application, 'App'
    set :user, 'deploy'
    #set :pty, true
    # Default branch is :master
    # ask :branch, `git rev-parse --abbrev-ref HEAD`.chomp



    # Default value for linked_dirs is []
    # set :linked_dirs, fetch(:linked_dirs, []).push('log', 'tmp/pids', 'tmp/cache', 'tmp/sockets', 'vendor/bundle', 'public/system')


    namespace :deploy do

    after :restart, :clear_cache do
    on roles(:web), in: :groups, limit: 3, wait: 10 do
    # Here we can do anything such as:
    # within release_path do
    # execute :rake, 'cache:clear'
    # end
    end
    end

    end

    生产.rb
    server '192.168.1.84', user: 'deploy', roles: %w{app db web}

    #set :stage, :production
    role :app, %w{deploy@192.168.1.84}
    role :web, %w{deploy@192.168.1.84}
    role :db, %w{deploy@192.168.1.84}


    set :ssh_options, {
    forward_agent: false,
    auth_methods: %w(password),
    password: 'Deploy4Real',
    user: 'deploy'
    }

    最佳答案

    我有一个类似的问题。事实证明 SSH 代理没有运行。我在查看 Capistrano 文档时发现了这一点:http://capistranorb.com/documentation/getting-started/authentication-and-authorisation/

    运行此命令:

    $ ssh-add -l



    显示我的公钥没有添加到代理中,所以我必须添加它:

    $ ssh-add



    添加的身份:/Users/me/.ssh/id_rsa (/Users/me/.ssh/id_rsa)

    在此之后,我的 Capistrano 部署成功了。

    关于ruby-on-rails - Rails : Capistrano. 权限被拒绝(公钥),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31796888/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com