我可以通过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
什么改变了?还是我的配置不正确?
2条答案
按热度按时间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
sudo systemctl restart sshd
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
。