无法使用 Capistrano 在远程服务器上回显

无法使用 Capistrano 在远程服务器上回显

使用命令行它可以工作:

$ ssh [email protected]
password:
> echo ping
ping

使用 Capistrano:

# set :use_sudo, true
set :pty, true
set :user, 'user'
set :password, 'password'

set :stage, :production
role :web, 'remote.vm.net'

task :ping do
  on roles(:web) do
    execute 'echo ping'
  end
end

它没有:

$ cap production ping
INFO [7db945a1] Running /usr/bin/env echo ping on remote.vm.net
DEBUG [7db945a1] Command: echo ping
cap aborted!
Net::SSH::AuthenticationFailed

我错过了什么?

答案1

我可能错了,但我想说的是,execute 命令不会运行 shell。echo 是 shell 提供的命令。尝试使用“run”命令而不是“execute”。

另请注意,最新版本中已弃用 run 和 execute。

相关内容