2014-06-22 58 views
0

我正在使用Capistrano将Rails应用程序部署到Linux服务器。当我运行任何Capistrano的任务,我得到以下错误:Net :: SSH :: AuthenticationFailed与Capistrano部署时

Net::SSH::AuthenticationFailed: Authentication failed for user [email protected] 

我使用Capistrano的2.15.5和净SSH 2.9.1。我正在部署到一个全新的Linux服务器,它有两个用户:root和adam。我在deploy.rb如下:

set :user, "adam" 
set :password, "my_password" 

上述错误,只有当我试图部署为用户亚当发生时,我可以部署为root用户。因此我认为这可能与linux安装/权限有关,而不是capistrano安装。我不确定问题出在哪里,任何人都可以帮忙吗?

非常感谢,

亚当

+0

我强烈建议您从部署脚本中删除所有密码,创建一些SSH密钥,并配置SSH代理转发(如果您从GitHub或其他远程存储库进行部署)。在您的服务器上禁用密码验证也是明智之举。这是相当不安全的。 – Jon

+0

@AdamP什么是您的net-ssh gem版本?如果它不是2.7.0。尝试改变到该版本,并尝试一次 – anusha

+0

解决 - 谢谢anusha,更改net-ssh到2.7.0做窍门 – AdamP

回答

0

首先,确保你能SSH登录到服务器部署用户。一旦你可以做到这一点,确保你可以访问部署目录并在其中创建文件等。

一旦这一切都奏效,Capistrano会有一些专门设计的部署任务,以检查您是否拥有所有必备权限。运行它们。

之后,你应该很好去。

从您粘贴的错误看来,您似乎缺乏基本访问权限,无法通过SSH使用您使用的用户名/密码组合登录。

根据我对你的问题的评论 - 你应该认真考虑放弃SSH密钥的密码。

+0

谢谢乔恩。我同意这看起来像我缺乏基本的访问权限 - 奇怪的是,我可以作为用户亚当SSH进入服务器没有任何问题。此外,我可以使用用户root部署capistrano,并且不会出现此错误。你有什么想法我可能需要看什么权限?我不知道从哪里开始! – AdamP