Saat ini saya memiliki kunci SSH lama yang diunggah di server. Masalahnya adalah saya kehilangan ~/.ssh
direktori saya (dengan yang asli id_rsa
dan id_rsa.pub
file).
Akibatnya, saya ingin menghapus kunci SSH lama langsung di server dan mengunggah yang baru.
Saya mencoba perintah berikut ini tanpa hasil:
$> ssh-add -D
Apakah ada cara untuk menghapus kunci SSH sepenuhnya?
ssh-add -d
?Jawaban:
Perhatikan bahwa setidaknya ada dua laporan bug untuk
ssh-add -d/-D
tidak menghapus kunci:ssh-add -D
tidak menghapus kunci SSH darignome-keyring-daemon
memori "ssh-add -D
menghapus semua identitas tidak berfungsi. Juga, mengapa semua identitas ditambahkan secara otomatis? "Masalah sebenarnya adalah:
Lebih tepatnya, tentang masalah ini:
Bug ini masih dikonfirmasi di Ubuntu 14.04.4, baru-baru ini dua hari yang lalu (21 Agustus 2014)
Solusi yang mungkin:
Solusi lain:
Komentar ini sebenarnya menyarankan:
Ryan Lue menambahkan kasus sudut lain yang menarik di komentar :
Itu adalah kasus ketika para
keygrip
telah ditambahkan seperti di sini .sumber
ssh-agent
danssh-add
jawaban yang dipilih? Poster asli mengatakan dia inginremove the old SSH key directly on the server and upload a new one
. Kedengarannya dia ingin mengedit~/.ssh/authorized_keys
pada remote host.git clone
adalah menggunakan kunci pertama dalam rantai bukannya versi dalam file konfigurasi pada kotak Ubuntu. Kunci buruk disedot secara otomatis dan diteruskan ke kotak Debian.id_rsa
danid_rsa.pub
file sama sekali, dan kuncinya masih muncul. Ternyata gpg-agent sedang menyimpannya dalam~/.gnupg/sshcontrol
file; Saya harus menghapusnya secara manual dari sana.Jika Anda mencoba melakukan operasi terkait ssh dan mendapatkan kesalahan berikut:
Anda dapat menghapus kunci ssh yang hilang dari agen ssh Anda dengan yang berikut ini:
sumber
Kecuali jika saya salah paham, Anda kehilangan
.ssh
direktori yang berisi kunci pribadi Anda di mesin lokal Anda dan karenanya Anda ingin menghapus kunci publik yang ada di server dan yang memungkinkan login berbasis kunci. Dalam hal ini, itu akan disimpan dalam.ssh/authorized_keys
file di direktori home Anda di server. Anda dapat mengedit file ini dengan editor teks dan menghapus baris yang relevan jika Anda dapat mengidentifikasinya (bahkan lebih mudah jika hanya itu entri!). Saya harap kunci itu bukan satu-satunya metode akses Anda ke server dan Anda memiliki cara lain untuk masuk dan mengedit file. Anda dapat secara manual menambahkan kunci publik baru keauthorised_keys
file atau menggunakanssh-copy-id
. Apa pun itu, Anda perlu mengatur kata sandi untuk akun Anda di server, atau beberapa identitas lain atau metode akses untuk sampai keauthorized_keys
file di server.ssh-add
menambahkan identitas ke agen ssh Anda yang menangani pengelolaan identitas Anda secara lokal dan "koneksi ke agen diteruskan melalui login jarak jauh SSH, dan dengan demikian pengguna dapat menggunakan hak istimewa yang diberikan oleh identitas di mana saja dalam jaringan dengan cara yang aman." (halaman manual), jadi saya tidak berpikir itu yang Anda inginkan dalam kasus ini. Tidak ada cara untuk mendapatkan kunci publik Anda ke server tanpa Anda memiliki akses ke server tersebut melalui login ssh sejauh yang saya tahu.sumber
Saya membuka aplikasi "Kata Sandi dan Kunci" di Unity saya dan menghapus kunci yang tidak diinginkan dari Kunci Aman -> kunci OpenSSH Dan mereka secara otomatis telah dihapus dari ssh-agent-l juga.
sumber
~/.ssh
Saya dapat mengkonfirmasi bahwa bug ini masih ada di Ubuntu 19.04. Solusi yang disarankan oleh @VonC bekerja dengan sempurna, meringkas untuk versi saya:
Apa yang saya lakukan selanjutnya adalah mencoba
ssh-add -D
lagi, dan setelah rebootssh-add -l
memberi tahu saya Agen tidak memiliki identitas. Saya mengkonfirmasi bahwa saya masihssh-agent
menjalankan daemonps aux | grep agent
. Jadi saya menambahkan kunci yang paling sering saya gunakan dengan GitHub (ssh-add ~/.ssh/id_ecdsa
) dan semuanya baik-baik saja!Sekarang saya dapat melakukan operasi normal dengan repositori saya yang paling sering digunakan, dan jika saya kadang-kadang memerlukan akses ke repositori lain yang menggunakan kunci RSA, saya hanya mendedikasikan satu terminal untuk itu
export GIT_SSH_COMMAND="ssh -i /home/me/.ssh/id_rsa.pub"
. Terpecahkan! Kredit diberikan ke @VonC karena menunjukkan bug dan solusinya.sumber
Periksa kunci .ssh atau tidak di sistem Anda
Jika Tidak dari
Lewat di terminal
Hapus Kunci .ssh yang ada
Membuat baru
Buat Kunci .ssh Baru -> ssh-keygen -t rsa -b 4096 -C "[email protected]"
Kunci publik telah disimpan di "/ Pengguna / administrator /.ssh/id_ed25519.pub."
sumber
Solusi untuk saya (OpenSuse Leap 42.3, KDE) adalah mengubah nama folder
~/.gnupg
yang ternyata berisi kunci dan profil yang di-cache. Setelah KDE keluar / masuk, ssh-add / agent berjalan kembali dan folder dibuat dari awal, tetapi semua kunci lama sudah tidak ada.Saya tidak berhasil dengan pendekatan lain.
sumber