![](/img/trans.png)
[英]Capistrano 3.5 Net::SSH::AuthenticationFailed: Authentication failed
[英]After restarting the server instance, Capistrano throws the error that Authentication failed for user Net::SSH::AuthenticationFailed
這是我們的維護項目。 我們已經獲得了生產服務器的私鑰( id_rsa.txt ),可以從客戶端登錄。
如果我們要部署應用程序,我們只需將私鑰文件添加到我的本地 ssh-agent
ssh-添加 id_rsa.txt
然后按照capistrano的部署命令就成功了
捆綁執行帽部署
這是 Deploy.rb 中的 ssh 行:
server 'example.com', user: 'app', roles: %w[app db web sidekiq]
set :ssh_options, { forward_agent: true, user: "app", keys: %w(/home/user/id_rsa.txt) }
問題:在實例通過 aws 的 Web 控制台重新啟動之前一切正常。 之后,我們無法部署並收到錯誤消息
home/rubx/.rvm/gems/ruby-2.7.2@glamz-web/gems/net-ssh-6.1.0/lib/net/ssh.rb:268:in `start': Authentication failed for user user@example.com (Net::SSH::AuthenticationFailed)
1: from /home/rubx/.rvm/gems/ruby-2.7.2@glamz-web/gems/sshkit-1.21.2/lib/sshkit/runners/parallel.rb:11:in `block (2 levels) in execute'
/home/rubx/.rvm/gems/ruby-2.7.2@glamz-web/gems/sshkit-1.21.2/lib/sshkit/runners/parallel.rb:15:in `rescue in block (2 levels) in execute': Exception while executing as app@52.58.220.92: Authentication failed for user user@example.com (SSHKit::Runner::ExecuteError)
cap aborted!
SSHKit::Runner::ExecuteError: Exception while executing as user@example.com: Authentication failed for user user@example.com
/home/rubx/.rvm/gems/ruby-2.7.2@glamz-web/gems/sshkit-1.21.2/lib/sshkit/runners/parallel.rb:15:in `rescue in block (2 levels) in execute'
/home/rubx/.rvm/gems/ruby-2.7.2@glamz-web/gems/sshkit-1.21.2/lib/sshkit/runners/parallel.rb:11:in `block (2 levels) in execute'
Caused by:
Net::SSH::AuthenticationFailed: Authentication failed for user user@example.com
經過一番谷歌搜索,我嘗試了以下步驟,但沒有成功。
注意:我們可以使用相同的密鑰文件成功登錄服務器
我是否需要專門為 Capistrano 部署配置服務器? 提前致謝
我們正在嘗試使用 syslog(/var/log/syslog) 來獲取日志消息,然后通過谷歌搜索了解了 /var/log/auth.log。 通過腳本建立服務器連接時,在 auth.log 上發現以下錯誤消息
Jun 11 05:01:36 ip- sshd[1757827]: userauth_pubkey: key type ssh-rsa not in PubkeyAcceptedAlgorithms [preauth]
Jun 11 05:01:36 ip- sshd[1757827]: Connection closed by authenticating user app 15.4.81.22 port 47652 [preauth]
解決方案
sshd配置中允許ssh-rsa算法PubkeyAcceptedKeyTypes后問題解決
須藤 vi /etc/ssh/sshd_config
PubkeyAcceptedKeyTypes=+ssh-rsa
重新啟動sshd以反映更改
sudo systemctl 重啟 sshd
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.