使用 pem 文件与 capistrano 一起部署

Posted

技术标签:

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

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

【问题讨论】:

【参考方案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"]

【讨论】:

以上是关于使用 pem 文件与 capistrano 一起部署的主要内容,如果未能解决你的问题,请参考以下文章

Capistrano 捆绑器:安装失败

使用 pem 文件访问 AWS ssh 集群

将证书从 pem 转换为 jks

在启动时启动延迟作业

/usr/bin/env ruby​​ 没有这样的文件或目录:使用 capistrano 3、capistrano/rbenv、capistrano/bundler 和 capistrano/rail

Rails Ubuntu / passenger / capistrano应用程序资产未部署