【发布时间】:2013-05-23 16:37:27
【问题描述】:
我一直在关注this tutorial,试图通过 Capistrano 部署我的 Zend Framework 站点。我已经完成了几乎所有工作:当我通过 SSH 登录时,我的服务器会从我的私钥中识别签名,因此我不再需要输入密码。
不幸的是,当我运行命令 cap deploy:setup 时,我得到以下错误输出:
servers: ["server@domain"]
connection failed for: server@domain (Net::SSH::Authentication::AgentError: unknown response from agent: 1, "\x00\x00\x00,\x01\x00\x00\x00'SSH-2.0-Ruby/Net::SSH_2.6.7 x64-mingw32")
我完全不熟悉 Ruby 以及 SSH 和公钥身份验证背后的要点,所以我真的不知道发生了什么。
如果有帮助,我必须使用 GIT Bash 工具生成我的公钥/私钥对,并且我还在另一个窗口中使用 Ruby 命令提示符。我的直觉告诉我 Ruby 无法访问私钥和/或没有缓存密钥的密码。
【问题讨论】:
-
capistrano 配置中设置的用户变量是什么?
ssh <capistrano-user>@server有效吗? -
pastebin.com/LuGkkCKz 有我正在使用的 deploy.rb 文件。嗯,有点。那里应该有占位符。我的系统设置也可能有误,因为我只能从 Git Bash 的命令行运行 ssh——不能从正常的命令提示符,也不能从运行 Ruby 的命令提示符。无论如何,当我运行 ssh
@server 时,它工作得很好——甚至不需要提供私钥密码。我做错了什么? -
尝试添加
default_run_options[:pty] = true并将set :deploy_via, :copy更改为set :deploy_via, :remote_cache -
试过了。它没有用。还有其他想法吗?
-
只是想看看它是否有效,我也尝试使用
set :scm_passphrase, "laServerPassword",但即使这样也得到了相同的响应。所以我开始认为可能是服务器端有问题...
标签: git authentication capistrano ssh-keys