即使我已经设置了 ssh 密钥,capistrano 仍然要求输入第一个密码吗?

即使我已经设置了 ssh 密钥,capistrano 仍然要求输入第一个密码吗?

背景:我已经设置了一个 ssh 密钥,以避免在 capistrano 中使用密码http://www.picky-ricky.com/2009/01/ssh-keys-with-capistrano.html。基本 ssh 到我的服务器确实工作正常,无需输入密码。我使用“dreamhost.com”进行托管。

问题 - 当我运行“cap deploy”时,系统仍要求我输入第一个密码(尽管之前第二个和第三个密码请求现已自动完成)。要求输入密码的是 capistrano 命令,该命令以“git clone - q ssh:.....”开头。

问题 - 我是否遗漏了什么?如何才能让“cap deploy”完全免密码?

config/deploy.rb 中的一些摘录如下:

set :use_sudo, false
ssh_options[:keys] = [File.join(ENV["HOME"], ".ssh", "id_rsa")]
default_run_options[:pty] = true

谢谢

PS. 服务器上的权限为:

drwx------    2 mylogin pg840652  4096 2010-02-22 15:56 .ssh
-rw-------    1 mylogin pg840652  404 2010-02-22 15:45 authorized_keys

答案1

得到它:

set :repository,  "/home/me/git_repo/myapp.git"
set :local_repository,  "ssh://[email protected]/home/me/git_repo/myapp.git"

答案2

通常,当我看到此问题时,服务器上的权限并不完全正确。只有当每一方的权限都正确设置时,才会使用密钥。我会仔细检查文件和组以及密钥文件的读/写/执行设置。

相关内容