Perintah ssh-add tidak menambahkan identitas saya ke ssh-agent


20

Saya baru saja menginstal ubuntu 13.10 dan saya akan menambahkan identitas saya ke ssh-agent saya jadi saya membuka Terminal dan melakukan ini

bjorgvin@buntu:~$ ssh-add -l
The agent has no identities.
bjorgvin@buntu:~$ ssh-add
bjorgvin@buntu:~$ ssh-add -l
The agent has no identities.
bjorgvin@buntu:~$ 

ada ide?

Jawaban:


26

Dari man ssh-add:

ssh-add menambahkan identitas kunci pribadi ke agen otentikasi, ssh-agent (1). Ketika dijalankan tanpa argumen, ia menambahkan file ~ / .ssh / id_rsa, ~ / .ssh / id_dsa, ~ / .ssh / id_ecdsa dan ~ / .ssh / identitas. [...]

File identitas tidak boleh dibaca oleh siapa pun selain pengguna. Perhatikan bahwa ssh-add mengabaikan file identitas jika dapat diakses oleh orang lain.

Jadi, karena The agent has no identities.kesalahan, Anda mungkin tidak memiliki file-file itu atau mungkin file-file itu dapat diakses oleh orang lain. Anda dapat memeriksa ini menggunakan perintah berikut:

ls -l ~/.ssh

Juga, setelah Anda menjalankan ssh-addperintah, jalankan echo $?untuk melihat status kesalahan dari perintah sebelumnya. Jika status keluar kembali 0, perintah itu berhasil dijalankan. Jika status keluar mengembalikan nilai bukan nol, perintah gagal dijalankan.

Lihat man ssh-adduntuk info lebih lanjut.


benar, saya tidak punya file-file itu dan nilai keluar ssh-addadalah 1 tetapi tidak 0. jelas ada beberapa masalah dengan izin saya karena file tidak dibuat. Adakah yang bisa saya perbaiki? direktori ~/.sshada (kosong) tetapi tidak muncul ketika saya melakukannyals -l
bjorgvin

Saya menjalankan perintah ini ssh-keygen -q -t rsa -N 'password' -f ~/.ssh/id_rsasehingga man ssh-keygen membantu, terima kasih.
bjorgvin

1
Itu memberi petunjuk impor ke arah yang benar bagi saya. Saya memiliki beberapa kunci ssh dan pertama-tama harus menambahkan kunci yang tepat menggunakan ssh-add <keyname>. Kemudian itu bekerja seperti mantra. thx
paulroho

3
Untuk beberapa alasan, saya tidak memiliki output apa pun ketika berjalan ssh-addsetelah memasukkan frasa sandi, (gagal sesuai dengan $?penahanan 1. Saya mencoba chmod 600 ~/.ssh/id_rsa* dengan tidak berhasil. Saya menghasilkan kunci baru dari awal dengan ssh-keygendan kemudian bekerja. Sedih tapi setidaknya itu ok sekarang (Kunci gagal dibuat menggunakan ssh-keygen -t rsa -b 4096 -C "your_email@example.com", saya hanya berlari ssh-keygensebagai gantinya kali ini)
GabLeRoux

1
Saya harus melakukan hal berikut dalam urutan ini: (jika perlu, buat kunci ssh baru, dan pastikan untuk menambahkan kunci .pub ke github), kemudian cd ~/.ssh && ls -lahuntuk melihat izin baca / tulis di folder .ssh, ubah semua kunci (s ) dengan chmod 400 myKeyitu ssh-add **ABSOLUTE**pathToKey jika Anda tidak menambahkan jalur MUTLAK , itu tidak akan berhasil. Kemudian, ujilah denganssh -vT git@github.com
jungledev

3

Tambahan untuk pertimbangan di atas, saya menemukan bahwa jika Anda menggunakan shell alternatif, Anda mungkin perlu mengkonfigurasinya untuk memuat ssh-agent. Misalnya, di Zsh, kita harus menambahkan ssh-agentke pluginsdalam .zshrc.

Metode ini berfungsi dengan baik di Ubuntu 17.10 dengan Zsh terbaru

Yang lain menemukan bahwa dengan id_ed25519kunci, rsaberfungsi tanpa plugin. Setelah menambahkan ssh-agentuntuk ~/.zshrc, restart shell dengan exec "$SHELL"dan melaksanakan:ssh-add ~/.ssh/id_ed25519

Enter passphrase for ~/.ssh/id_ed25519: 
Identity added: ~/.ssh/id_ed25519 (user@host)

Tambahkan plugin ssh-agent ke .zshrc melalui instruksi di sini: github.com/robbyrussell/oh-my-zsh/tree/master/plugins/ssh-agent
Kariem
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.