net_ssh на производстве возвращает «Ошибка аутентификации» с использованием открытых ключей

Я пытаюсь выполнить пару команд на удаленном сервере и в качестве метода аутентификации использую открытые ключи.

Открытые ключи правильно настроены на сервере, и я могу подключиться к нему без запроса пароля системой, например:

ssh [email protected]

Итак, вот что я делаю в своем коде:

Net::SSH.start(host, user, :keys=>["~/.ssh/id_rsa","~/.ssh/id_rsa.pub"]) do |ssh|
  ssh.exec "service nginx reload"
end

На локальной машине все работает нормально, на рабочем сервере выдает ошибку.

Net::SSH::AuthenticationFailed: Authentication failed for user [email protected]

Я немного погуглил и уже пытался вернуться к net_ssh 2.7.0, но безуспешно, та же проблема. Я также попытался заменить относительный путь на абсолютный, в моем случае /root/.ssh/... Я попытался добавить параметр

:auth_methods => ['publickey']

все равно не повезло.

Я также уверен, что ключи находятся на правильных путях.

ИЗМЕНИТЬ 1

Стоит отметить, что это отлично работает при запуске в рабочей консоли рельсов.

ИЗМЕНИТЬ 2

Симптомы здесь аналогичны симптомам в этом вопросе: Net::SSH работает из производственной консоли rails, AuthenticationFailed из производственного веб-приложения, за исключением того, что мое приложение запускается от root, и из-за этого не должно быть проблем с разрешениями.

ИЗМЕНИТЬ 3

Я временно вернулся к аутентификации по паролю, которая отлично работает, но вместо этого я бы хотел использовать аутентификацию по ключу.

Любая помощь по этому вопросу очень ценится.


person Vitali    schedule 27.06.2014    source источник
comment
вы работаете как root? (это действительно плохая идея), когда он переходит в собственность, они получают целую коробку. Вы можете посмотреть журналы на дальнем конце. также: ключи предназначены только для закрытых ключей, я не думаю, что вам нужен открытый ключ, поскольку он не используется для подключения, и это может все испортить.   -  person Doon    schedule 27.06.2014
comment
Я попытался полностью удалить ключи, тот же эффект, не работает. в auth.log нет ничего связанного с попыткой этого сервера соединиться с другим.   -  person Vitali    schedule 27.06.2014