我一直收到这个错误:
用户deploy@179.92.100.40
的身份验证失败 set :stage, :test
server '179.92.100.40', port: 25000, user: 'deploy'
set :branch, "dev"
set :deploy_to, "/srv/www/test"
set :format, :pretty
set :log_level, :debug
set :keep_releases, 5
set :repo_url, "https://donatas@bitbucket.org/test.git"
set :scm, :git
set :git_strategy, SubmoduleStrategy
set :ssh_options, { forward_agent: true, user: fetch(:user), keys: %w('/root/.ssh/id_rsa.pub'), auth_methods: %w(publickey) }
我已将本地id_rsa.pub添加到远程机器authorized_keys,这样如果我在本地机器中输入类似的内容:
cat id_rsa.pub | ssh deploy@179.92.100.40 -p 25000 "mkdir -p /home/deploy/.ssh && cat >> ~/.ssh/authorized_keys"
所以,现在在本地机器上运行如下:
ssh deploy@179.92.100.40 -p 25000 'hostname; uptime'
我在没有输入密码的情况下得到了这些命令的结果,但是使用capistrano我无法使用ssh登录。它可以正常使用密码。
答案 0 :(得分:0)
这些:ssh_options
都不是必需的,事实上它们可能适得其反。例如,除非您在其他地方设置了:user
变量,否则fetch(:user)
将为nil
,这不是您想要的。
您可以删除整个:ssh_options
,然后重试吗?