Остановить запросы пароля SSH в serverpec

Я нахожусь в среде с токенами аутентификации, поэтому обычно пароль SSH не требуется. Мои тесты серверной спецификации всегда запрашивают у меня пароль. Есть ли способ предотвратить это?

Пароль не требуется:

$ ssh atlspf01
newatson@atlspf01:~$

Тем не менее, в serverpec

$ rake spec
Password:

Соответствующий код в spec_helper.rb

require 'serverspec'
require 'net/ssh'

set :backend, :ssh
...
set :host, ENV['TARGET_HOST']
set :ssh_options, :user => ENV['USERNAME']

ОБНОВЛЕНИЕ: Проблема в том, что net:: ssh не поддерживает аутентификацию Kerberos (gssapi-with-mic). Используйте ssh::ssh::kerberos или используйте ключи ssh.

1 ответ

Решение

В вашей конфигурации вы только передаете информацию о пользователе ssh_options

Предполагая, что ваш целевой хост хранится в переменной среды TARGET_HOST и имя пользователя хранится в USERNAME, вы должны сделать что-то вроде этого:

set :ssh_options, Net::SSH::Config.for(ENV['TARGET_HOST']).merge(user: ENV['USERNAME'])

Другие вопросы по тегам