簡體   English   中英

重啟服務器實例后,Capistrano 拋出 Authentication failed for user Net::SSH::AuthenticationFailed 錯誤

[英]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

經過一番谷歌搜索,我嘗試了以下步驟,但沒有成功。

  1. 將我的公鑰(.ssh/id_rsa.pub)添加到目標服務器的authorized_keys
  2. 允許我的 IP 地址進入服務器的入站規則。
  3. 試圖只將服務器密鑰放在我的 ssh-agent 中。

注意:我們可以使用相同的密鑰文件成功登錄服務器

我是否需要專門為 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM