ruby-on-rails Capistrano:用户www.example.com的身份验证失败ubuntu@xx.xxx.xxx.xxx(Net::SSH::AuthenticationFailed)

wh6knrhe  于 2023-07-01  发布在  Ruby
关注(0)|答案(2)|浏览(87)

我可以通过ssh ubuntu@xx.xxx.xxx.xxx连接。但不通过cap production deploy:check
电流

set :user, "ubuntu"
set :ssh_options, { forward_agent: true }

server "xx.xxx.xxx.xxx",
       user: fetch(:user),
       roles: %w[web app db]

试过

set :user, "ubuntu"
set :ssh_options, {
  forward_agent: true,
  user: fetch(:user),
  keys: %w(~/.ssh/id_rsa)
}

server "xx.xxx.xxx.xxx",
       user: fetch(:user),
       roles: %w[web app db]

“current”曾经是我为其他项目设置的,我只需要ssh-add然后cap production deploy
什么改变了?还是我的配置不正确?

ha5z0ras

ha5z0ras1#

问题:通过capistrano对用户ubuntu@xx.xxx.xxx.xxx(Net::SSH::AuthenticationFailed)进行身份验证失败,但可以直接使用ssh
调试:

  • 服务器上的sudo tail -f /var/log/auth.log
  • 然后在本地上尝试cap production deploy:check
  • userauth_pubkey: key type ssh-rsa not in PubkeyAcceptedAlgorithms [preauth]来自auth.log

解决方案:

  • 编辑然后/etc/ssh/sshd_config
  • 查找PubkeyAuthentication然后取消注解(删除#
  • 添加PubkeyAcceptedKeyTypes=+ssh-rsa
  • 重启sshd sudo systemctl restart sshd
6yt4nkrj

6yt4nkrj2#

出于安全原因,ssh-rsa已变为disabled by default,应避免使用。
您可能需要更新net-ssh gem,因为6.2.0.beta1版本中的added支持rsa-sha 2 -512和rsa-sha 2 -256主机密钥算法。
由于其他依赖项,直接更新net-ssh可能无法工作,因此您可能必须更新sshkit

bundle update sshkit

相关问题