使用pem文件部署Capistrano

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

39

对于 Capistrano 3,语法有所不同。

set :pty, true

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

37

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”...现在我收到了这个错误:Permission denied (publickey)。致命错误:远程终端意外挂断*** [deploy:update_code]正在回滚。 - Tyler Jones
你在服务器上有公钥吗? - NARKOZ
有没有一种方法可以让Capistrano在输出中变得冗长? - Tyler Jones
7
你必须使用: ssh_options[:auth_methods] = ["publickey"] 以避免NoMethodError: undefined method `each' for "publickey":String错误。 - Alexey Kucherenko
如果找不到密钥文件,您将不会收到文件未找到错误,请仔细检查密钥的路径。 - Hugo Logmans
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接