使用命令行它可以工作:
$ 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。