【发布时间】:2025-12-03 22:00:01
【问题描述】:
我正在使用 Capistrano 将 Rails 应用程序部署到 linux 服务器。当我运行任何 Capistrano 任务时,我收到以下错误:
Net::SSH::AuthenticationFailed: Authentication failed for user adam@example.com
我正在使用 Capistrano 2.15.5 和 net-ssh 2.9.1。我正在部署到一个新的 linux 服务器,它有两个用户:root 和 adam。我在 deploy.rb 中有以下内容:
set :user, "adam"
set :password, "my_password"
上述错误仅在我尝试以用户 adam 进行部署时发生,我可以以 root 用户身份进行部署。因此我认为这可能与 linux 设置/权限有关,而不是 capistrano 设置。不知道问题出在哪里,谁能帮忙解决一下?
非常感谢,
亚当
【问题讨论】:
-
如果您从 GitHub 或其他远程存储库进行部署,我强烈建议您从部署脚本中删除所有密码痕迹,创建一些 SSH 密钥,并配置 SSH 代理转发。在您的服务器上禁用密码验证也是谨慎的做法。这很不安全。
-
@AdamP 你的 net-ssh gem 版本是多少?如果不是 2.7.0。尝试更改为该版本并尝试一次
-
已解决 - 感谢 anusha,将 net-ssh 更改为 2.7.0 解决了问题