Аутентификация по ключу в Ruby через ssh: Не удалось разобрать PKey: нет стартовой строки

Я пытаюсь подключиться к серверу с помощью ssh, используя ключ ssh. Регистрирует мне ошибку, а также запрашивает пароль, который меня не следует спрашивать, потому что я использую ключ authen-ion, и я намерен избавиться от необходимости вводить пароль:

 ERROR -- net.ssh.authentication.key_manager[2b02154b7610]: could not load private key file `/home/me/.ssh/id_rsa.pub': ArgumentError (Could not parse PKey: no start line)

Мой код:

Net::SSH.start(ip_item, "root", host_key: "ssh-rsa", keys: ["~/.ssh/id_rsa.pub"], verbose: :debug) do |ssh|

Это ошибка? Почему написано "частное"?

Ключ существует.

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

Также cat ~/.ssh/authorized_keys на сервере показывает мой открытый ключ.


person Community    schedule 29.06.2016    source источник


Ответы (2)


Вам нужно указать путь к закрытому ключу при подключении к хосту, а не к открытому ключу.

person Frederick Cheung    schedule 29.06.2016
comment
но где в документации это упоминается? - person ; 29.06.2016
comment
rubydoc.info/github/net-ssh/net-ssh/ Net/SSH говорит, что keys =› массив имен файлов с закрытыми ключами для использования для аутентификации на основе открытого ключа и хоста. - person Frederick Cheung; 29.06.2016
comment
Или вам нужно убедиться, что ssh-agent запущен, если на ключе есть пароль. знак равно - person ; 11.06.2019

Попробуйте изменить «~/.ssh/id_rsa.pub» на «~/.ssh/id_rsa» в вашем коде. Это должно помочь.

person Ivan Olshansky    schedule 17.10.2018