Otentikasi dengan kunci di Ruby melalui ssh: Tidak dapat mengurai PKey: tidak ada garis awal

Saya mencoba menyambung ke server dengan ssh menggunakan kunci ssh. Ini mencatat kesalahan saya dan juga menanyakan kata sandi yang seharusnya tidak diminta karena saya menggunakan kunci authen-ion dan niat saya adalah menghilangkan keharusan memasukkan kata sandi:

 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)

Kode saya:

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

Apakah itu bug? Mengapa dikatakan “pribadi”?

Kuncinya ada.

Saya dapat terhubung ke server melalui terminal tanpa kata sandi dan itu ditambahkan ke daftar host server yang dikenal dengan benar karena saya dapat terhubung ke sana.

Juga cat ~/.ssh/authorized_keys di server menunjukkan kunci publik saya.


person Community    schedule 29.06.2016    source sumber


Jawaban (2)


Anda perlu memberikan jalur ke kunci pribadi saat menyambung ke host, bukan kunci publik.

person Frederick Cheung    schedule 29.06.2016
comment
tapi di mana dalam dokumentasi disebutkan hal itu? - person ; 29.06.2016
comment
rubydoc.info/github/net-ssh/net-ssh/ Net/SSH mengatakan kunci =› serangkaian nama file kunci pribadi yang digunakan untuk kunci publik dan otentikasi berbasis host. - person Frederick Cheung; 29.06.2016
comment
Atau Anda perlu memastikan ssh-agent berjalan jika ada kata sandi pada kuncinya. =\ - person ; 11.06.2019

Coba ubah "~/.ssh/id_rsa.pub" menjadi "~/.ssh/id_rsa" di kode Anda. Ini akan membantu.

person Ivan Olshansky    schedule 17.10.2018