Perhatikan bahwa setidaknya ada dua laporan bug untuk ssh-add -d/-D
tidak menghapus kunci:
Masalah sebenarnya adalah:
ssh-add -d/-D
hanya 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 -d
menerapkan kunci yang dimuat secara otomatis (dan ssh-add -t X
mengubah 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
.ssh
direktori 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 -D
untuk menghapus semua kunci yang Anda tambahkan secara manual . Ini juga mengunci kunci yang ditambahkan secara otomatis, tetapi tidak banyak digunakan karena gnome-keyring
akan meminta Anda untuk membuka kunci ketika Anda mencoba melakukan a git push
.
- Arahkan ke
~/.ssh
folder 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 push
tanpa masalah.
Solusi lain:
Yang benar-benar ingin Anda lakukan adalah mematikan gpg-keyring-daemon
semuanya.
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-manager
dari 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_rsa
dan id_rsa.pub
file sama sekali, dan kuncinya masih muncul.
Ternyata gpg-agent
caching mereka di ~/.gnupg/sshcontrol
file ; Saya harus menghapusnya secara manual dari sana.
Itu adalah kasus ketika parakeygrip
telah ditambahkan seperti di sini .
ssh-add -d
?