Я пытаюсь написать задачу с граблями, в которой она автоматически подключается к хосту Experian с использованием sftp.
Парень из Experian дал мне команду подключиться к своему серверу с помощью SFTP:
sftp -o PreferredAuthentications=password -o PubkeyAuthentication=no username@experian_ip
, который прекрасно работает, когда я запускаю его на терминале.
Затем я написал задачу для граблей на основе этой команды:
require 'net/sftp'
task :experian_sts => [:environment] do
hostname = "experian_ip"
username = "username"
password = "password"
@cmd = "test"
begin
sftp = Net::SFTP.start(hostname, username, password: password, keys_only: false, number_of_password_prompts: 0)
res = sftp.exec!(@cmd)
sftp.close
puts res
rescue
puts "Unable to connect to #{hostname} using #{username}/#{password}"
end
end
Но задача, похоже, не работает. Любая помощь?
UPDATE
После удаления спасателя вы увидите ошибку:
rake aborted!
Net::SSH::Disconnect: disconnected: Too many bad authentication attempts! (11)
/Users/ryzal/Sites/rentlord/lib/tasks/experian_sts.rake:12:in `block in <top (required)>'
/Users/ryzal/.rbenv/versions/2.3.1/bin/bundle:22:in `load'
/Users/ryzal/.rbenv/versions/2.3.1/bin/bundle:22:in `<main>'
Tasks: TOP => experian_sts
(See full trace by running task with --trace)