将公钥添加到bitbucket
帐户后,ssh -T git@bitbucket.org
返回(在Windows中):
The authenticity of host 'bitbucket.org (131.103.20.167)' can't be established.
RSA key fingerprint is 65:8c:1b:f2:6f:91:6b:5c:3b:ec:4a:46:46:74:7z:40.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'bitbucket.org' (RSA) to the list of known hosts.
logged in as myusername.
You can use git or hg to connect to Bitbucket. Shell access is disabled.
我们确认bitbucket.org
已添加到known_hosts
。 cap deploy
命令返回:
Host key verification failed.
fatal: The remote end hung up unexpectedly
我们在deploy.rb
文件中添加了以下两行:
ssh_options[:forward_agent] = true
default_run_options[:pty] = true
现在cap deploy
会返回错误:
Permission denied (publickey).
密钥不受密码保护。如果bitbucket
接受了该密钥(ssh -T
返回正确的信息),为什么我们仍然会遇到Permission denied
错误。
答案 0 :(得分:7)
您是否在远程服务器上运行ssh -T git@bitbucket.org
命令并在那里确认了?我刚刚使用Capistrano检查了我部署的Linux服务器,并且在部署用户的.ssh / known_hosts文件中列出了bitbucket.org(它已经散列,但ssh-keygen -F bitbucket.org
显示它)。
Capistrano SSH进入远程服务器,并从那里运行git checkout。它需要连接到Bitbucket的权限,尽管通过:forward_agent
选项从源计算机授予访问权限。