У меня была такая же проблема несколько дней назад, и я действительно обнаружил проблему для моего дела, а отправил ее в систему отслеживания проблем Fog .
Мой коллега использовал connection.bootstrap () с теми же учетными данными AWS, но разными SSH-ключами. Таким образом, открытый ключ "fog_default" уже зарегистрирован, и попытка войти в систему с моей парой ключей не удалась.
Если у вас возникли подобные проблемы, проверьте с помощью connection.key_pairs.get ('fog_default'), был ли зарегистрирован fog_default ранее.
Если это действительно так, у вас есть три варианта решения этой проблемы:
- Удалите fog_default, запустив: connection.key_pairs.get ('fog_default'). Уничтожьте и зарегистрируйте ваш новый открытый ключ с помощью bootstrap ()
- Зарегистрируйте свой пользовательский ключ вручную под произвольным именем
- Установите для Fog.credential произвольное имя, чтобы bootstrap () использовал это имя вместо «default» для регистрации вашего открытого ключа
Решение два выглядит следующим образом:
Fog.credentials = Fog.credentials.merge({
:private_key_path => "./keys/my_custom_key",
:public_key_path => "./keys/my_custom_key.pub"
})
if connection.key_pairs.get('my_custom_key').nil?
public_key = IO.read('./keys/my_custom_key.pub')
connection.import_key_pair('my_custom_key', public_key)
end
server = connection.servers.bootstrap(
:key_name => 'my_custom_key',
...
)
Решение третье, которое я предпочитаю, потому что единственное изменение, которое мне нужно сделать, это установить Fog.credential, выглядит так:
Fog.credential = :my_custom_key
connection.servers.bootstrap(
:private_key_path => './keys/my_custom_key',
:public_key_path => './keys/my_custom_key.pub',
...
)