背景:我已经设置了一个 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
通常,当我看到此问题时,服务器上的权限并不完全正确。只有当每一方的权限都正确设置时,才会使用密钥。我会仔细检查文件和组以及密钥文件的读/写/执行设置。