Рекс и идентификационные файлы

Я пытаюсь настроить облачный экземпляр 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";
};

где закрытый ключ — это тот, который предоставляется fi-ware, а открытый ключ — это, ну, что я придумал, или ничего. Если открытый ключ не указан, возникает ошибка

[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 [email protected]

правильно подключается к экземпляру. Так что, возможно, вопрос в том, может ли Рекс использовать один закрытый ключ для подключения к хосту?


person jjmerelo    schedule 30.11.2014    source источник
comment
Net::SSH2 (модуль SSH, используемый Rex по умолчанию) может не поддерживать формат вашего ключа. Скажите Rex использовать вместо этого Net::OpenSSH.   -  person salva    schedule 01.12.2014
comment
Вы также можете преобразовать ключ в формат, поддерживаемый Net::SSH2. См., например, эту запись.   -  person salva    schedule 01.12.2014
comment
На самом деле @salva, в конце концов, решение было на этой странице: вы можете сгенерировать открытый ключ из закрытого ключа. Однако я не обнаружил, как может помочь изменение режима подключения к другому модулю.   -  person jjmerelo    schedule 01.12.2014
comment
Под капотом Net::OpenSSH использует двоичный файл ssh, поэтому, если вы можете подключиться из командной строки, весьма вероятно, что вы также сможете подключиться с помощью Net::OpenSSH.   -  person salva    schedule 01.12.2014


Ответы (1)