Perhatikan bahwa setidaknya ada dua laporan bug untuk ssh-add -d/-D tidak menghapus kunci:
Masalah sebenarnya adalah:
ssh-add -d/-Dhanya menghapus kunci yang ditambahkan secara manual dari gnome-keyring.
Tidak ada cara untuk menghapus kunci yang ditambahkan secara otomatis.
Ini adalah bug asli, dan masih pasti ada.
Jadi, misalnya, jika Anda memiliki dua identitas ssh yang dimuat secara otomatis berbeda yang dikaitkan dengan dua akun GitHub yang berbeda - katakan untuk kantor dan untuk rumah - tidak ada cara untuk beralih di antara mereka. GitHub mengambil yang pertama yang cocok, sehingga Anda selalu tampil sebagai pengguna 'rumah' Anda di GitHub, tanpa ada cara untuk mengunggah sesuatu ke proyek yang berjalan.
Mengizinkan ssh-add -dmenerapkan kunci yang dimuat secara otomatis (dan ssh-add -t Xmengubah masa pakai kunci yang dimuat secara otomatis), akan memulihkan perilaku yang diharapkan sebagian besar pengguna.
Lebih tepatnya, tentang masalah ini:
Pelakunya adalah gpg-keyring-daemon:
- Ini merongrong operasi normal ssh-agent, sebagian besar hanya sehingga bisa muncul kotak cantik di mana Anda dapat mengetikkan frasa sandi untuk kunci ssh terenkripsi.
- Dan itu menelusuri
.sshdirektori Anda , dan secara otomatis menambahkan kunci yang ditemukannya ke agen Anda.
- Dan itu tidak akan membiarkan Anda menghapus kunci-kunci itu.
Bagaimana kita membenci ini? Mari kita tidak menghitung cara - hidup ini terlalu singkat.
Kegagalan diperparah karena klien ssh yang lebih baru secara otomatis mencoba semua kunci di ssh-agent Anda saat menghubungkan ke host.
Jika ada terlalu banyak, server akan menolak koneksi.
Dan karena gnome-keyring-daemon telah memutuskan untuk dirinya sendiri berapa banyak kunci yang Anda inginkan untuk dimiliki oleh ssh-agent Anda, dan telah memuatnya secara otomatis, DAN TIDAK AKAN MEMBIARKAN ANDA MENGHAPUSKAN MEREKA, Anda bersulang.
Bug ini masih dikonfirmasi di Ubuntu 14.04.4, baru-baru ini dua hari yang lalu (21 Agustus 2014)
Solusi yang mungkin:
- Lakukan
ssh-add -Duntuk menghapus semua kunci yang Anda tambahkan secara manual . Ini juga mengunci kunci yang ditambahkan secara otomatis, tetapi tidak banyak digunakan karena gnome-keyringakan meminta Anda untuk membuka kunci ketika Anda mencoba melakukan a git push.
- Arahkan ke
~/.sshfolder Anda dan pindahkan semua file utama Anda kecuali yang ingin Anda identifikasi ke dalam folder terpisah yang disebut cadangan. Jika perlu Anda juga dapat membuka kuda laut dan menghapus kunci dari sana.
- Sekarang Anda harus bisa melakukannya
git pushtanpa masalah.
Solusi lain:
Yang benar-benar ingin Anda lakukan adalah mematikan gpg-keyring-daemonsemuanya.
Buka System --> Preferences --> Startup Applications, dan batalkan pilihan kotak " SSH Key Agent (Gnome Keyring SSH Agent)" - Anda harus menggulir ke bawah untuk menemukannya.
Anda masih akan mendapatkan ssh-agent, hanya sekarang ia akan berperilaku waras: tidak ada kunci yang dimuat secara otomatis, Anda menjalankan ssh-add untuk menambahkannya, dan jika Anda ingin menghapus kunci, Anda bisa. Bayangkan itu.
Komentar ini sebenarnya menyarankan:
Solusinya adalah menjaga gnome-keyring-managerdari tidak pernah memulai, yang anehnya sulit akhirnya dicapai dengan menghapus izin eksekusi file program.
Ryan Lue menambahkan kasus sudut lain yang menarik di komentar :
Dalam hal ini membantu siapa pun: Saya bahkan mencoba menghapus id_rsadan id_rsa.pubfile sama sekali, dan kuncinya masih muncul.
Ternyata gpg-agentcaching mereka di ~/.gnupg/sshcontrolfile ; Saya harus menghapusnya secara manual dari sana.
Itu adalah kasus ketika parakeygrip telah ditambahkan seperti di sini .
ssh-add -d?