Apa sebenarnya yang dilakukan ssh-add?

15

Baru-baru ini saya menginstal ulang laptop saya dan menemukan bahwa 'git clone' tidak berfungsi. Saya secara konsisten menerima Permission denied (publickey).kesalahan.

Perbaikan didokumentasikan pada halaman masalah SSH GitHub : gunakan ssh-adduntuk memberi tahu SSH tentang kunci yang ingin saya gunakan untuk mengotentikasi pada GitHub.

Pertanyaan saya adalah: di bawah tenda, apa yang ssh-addsebenarnya dilakukan?

Saya bermaksud memperluas pemahaman saya tentang SSH untuk sementara waktu, & ini sepertinya alasan yang bagus untuk memulai :-)

Duncan Bayne
sumber

Jawaban:

21

ssh-addmenambahkan identitas kunci pribadi (dari ~/.sshdirektori Anda ) ke agen otentikasi ( ssh-agent), sehingga agen ssh dapat menangani otentikasi untuk Anda, dan Anda tidak memiliki ketik kata sandi di terminal.

Peter John Acklam
sumber
Saya akan jujur, ini membingungkan saya untuk sementara waktu. Saya pikir klien ssh selalu menggunakan kunci di ~/.sshdirektori Anda . Apakah beberapa distro melakukan hal yang setara ssh-addsecara otomatis? Mungkin itu sebabnya saya bingung?
blong
4
sshmemang menggunakan kunci dalam ~/.sshdirektori, tetapi jika kunci dilindungi oleh frasa sandi, frasa sandi ini harus dimasukkan di beberapa titik. Jika Anda menggunakan ssh-agentdan ssh-add, Anda mengetik frasa sandi ini satu kali. Jika tidak, Anda harus mengetikkan frasa sandi setiap kali menggunakan ssh. Perhatikan bahwa jika kunci tersebut tidak dilindungi kata sandi, Anda dapat menggunakan sshtanpa diminta frasa sandi.
Peter John Acklam
Mungkin ada beberapa kunci ssh di ~/.sshdan ini mungkin menjadi hal yang lebih berguna untuk dimiliki, lihat pada SO dan bitbucket docs
Frank Nocke
0

Berdasarkan artikel ini di github , kadang pada beberapa distribusi linux bahkan setelah Anda mengatur semuanya dengan benar kesalahan ini muncul:

Agent admitted failure to sign using the key.
debug1: No more authentication methods to try.
Permission denied (publickey).

Dan Anda harus berlari ssh-adduntuk menyelesaikan masalah tersebut.

Sadegh
sumber