我正在尝试部署一个应用程序,当我运行cap deploy时:检查所有看起来很好,但是当我尝试部署它时,我得到以下错误:
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
*** [deploy:update_code] rolling back
* executing "rm -rf /var/www/app/releases/20140327233712; true"
servers: ["IP"]
[IP] executing command
command finished in 676ms
Command git ls-remote git@bitbucket.org:user/app.git staging returned status code pid 5458 exit 128
我在我的服务器中生成了密钥(ssh-keygen -t rsa -C“lorem ..”),然后我在bitbucket中添加了这个密钥,但是我仍然遇到了权限问题。
修改
在deploy.rb文件中,我使用AWS创建新实例时生成的密钥,并将其保存到本地计算机:ssh_options [:keys] = [“/ Users / user / Documents / app。 pem“]然后我在我的服务器中生成了密钥并将其添加到Bitbucktet(”home / ubuntu / .ssh / id_rsa.pub“),所以我认为我需要添加本地密钥(”app.pem“) )机器到Bitbucket,但当我尝试这样做时,我得到了Bitbucket中的错误:无效的SSH密钥(ssh-keygen)。
答案 0 :(得分:1)
确保capistrano进程连接到Bitbucket的用户可以访问您生成的私钥,并在尝试连接Bitbucket时传递它。
您收到的错误:Permission denied (publickey)
是由于capistrano用于连接的私钥与您存储在Bitbucket中的公钥不匹配。