2015-06-15 6 views
-1

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

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

$ ssh atlspf01 
[email protected]:~$ 

Тем не менее, в serverspec

$ 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'] 

UPDATE: Проблема в том, что чистая :: 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'])

+0

Он подключается к правильному хосту, как есть. Это подсказки для пароля, которые я пытаюсь избежать. –

+0

@neil Используя приведенный выше ответ, все еще требуется пароль или он жалуется на пароль sudo? – egwspiti

+0

С приведенным выше ответом я все еще получаю приглашение «Пароль:». Я думаю, что это для SSH, потому что, если я докажу неправильный пароль, я получаю SSH-аутентификацию. –