使用 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 一起部署的主要内容,如果未能解决你的问题,请参考以下文章
/usr/bin/env ruby 没有这样的文件或目录:使用 capistrano 3、capistrano/rbenv、capistrano/bundler 和 capistrano/rail