【问题标题】:deploy with capistrano using a pem file使用 pem 文件与 capistrano 一起部署
【发布时间】:2012-10-09 16:39:50
【问题描述】:

我们有一个 EC2 实例,我们的 capistrano 设置需要 ssh。要通过 ssh 正常连接,我使用 .pem 文件连接到服务器。使用 capistrano 部署时如何利用这个 .pem 文件?

【问题讨论】:

    标签: ruby-on-rails ssh amazon-ec2 capistrano


    【解决方案1】:

    deploy.rb 中设置这些配置值:

    default_run_options[:pty] = true
    ssh_options[:forward_agent] = true
    ssh_options[:auth_methods] = ["publickey"]
    ssh_options[:keys] = ["/path/to/key.pem"]
    

    对于 Capistrano 3 使用:

    set :pty, true
    set :ssh_options, {
      forward_agent: true,
      auth_methods: %w[publickey],
      keys: %w[/path/to/key.pem]
    }
    

    【讨论】:

    • 好的,除了“publickey”之外,我有所有这些......所以现在我收到了这个错误:权限被拒绝(publickey)。致命:远程端意外挂断 *** [deploy:update_code] 回滚
    • 你在服务器上有公钥吗?
    • 有没有办法让 capistrano 在其输出中变得冗长?
    • 你必须使用:ssh_options[:auth_methods] = ["publickey"] 来避免 NoMethodError: undefined method `each' for "publickey":String error
    • 如果未找到密钥文件,您将不会收到文件未找到错误,因此请仔细检查密钥的路径。
    【解决方案2】:

    capistrano 3 的语法有些不同

    set :pty, true
    
    set :ssh_options, {
      forward_agent: true,
      auth_methods: ["publickey"],
      keys: ["/path/to/key.pem"]
    }
    

    【讨论】:

      猜你喜欢
      • 2016-06-02
      • 2020-08-05
      • 2018-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-27
      • 2012-04-14
      • 2023-02-22
      相关资源
      最近更新 更多