capistrano未使用ssh密钥

时间:2016-02-17 20:27:17

标签: ubuntu ssh capistrano

我一直收到这个错误:

用户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登录。它可以正常使用密码。

1 个答案:

答案 0 :(得分:0)

这些:ssh_options都不是必需的,事实上它们可能适得其反。例如,除非您在其他地方设置了:user变量,否则fetch(:user)将为nil,这不是您想要的。

您可以删除整个:ssh_options,然后重试吗?