Рекс и идентификационные файлы
Я пытаюсь настроить экземпляр облака fi-ware с помощью Rex. Эти экземпляры (и, возможно, другие системы на основе OpenStack) доказывают, что это "файл идентификации", единственный закрытый ключ, который вы можете использовать для подключения к ним. Я использовал варианты этого:
user "root";
private_key "/home/jmerelo/.ssh/jj-iv.pem";
public_key "/home/one/public/key.dsa";
key_auth;
group fiware => "130.206.x.y";
desc "Install git";
task "git", group => "fiware", sub {
install "git";
};
где закрытый ключ - это ключ, предоставленный программным обеспечением, а открытый ключ - ну, что бы я ни думал, или ничего. Если открытый ключ не указан, ошибка
[2014-11-30 11:45:45] WARN - Error running task/batch: No public_key file defined. at /home/jmerelo/perl5/perlbrew/perls/perl-5.20.0/lib/site_perl/5.20.0/Rex/Task.pm line 621.
at /home/jmerelo/perl5/perlbrew/perls/perl-5.20.0/lib/site_perl/5.20.0/Rex/TaskList/Base.pm line 273.
что совершенно очевидно, правда. Но если я попробую другие открытые ключи, ошибка:
[2014-11-30 11:48:37] WARN - Error running task/batch: Wrong username/password or wrong key on 130.206.127.211. Or root is not permitted to login over SSH. at /home/jmerelo/perl5/perlbrew/perls/perl-5.20.0/lib/site_perl/5.20.0/Rex/TaskList/Base.pm line 273.
С помощью
ssh -i ~/.ssh/jj-iv.pem root@130.206.x.y
правильно подключается к экземпляру. Поэтому, возможно, вопрос в том, может ли Рекс использовать один закрытый ключ для подключения к хосту?
1 ответ
Наконец, я сгенерировал открытый ключ из закрытого ключа, используя, как предлагается в документации,
$ sshkey-gen -y -f /path/to/your/private.key >public.key
а затем с помощью этого public.key в Rexfile