Setelah memutakhirkan ke Fedora 23, otentikasi tanpa kata sandi (berbasis kunci publik) tidak lagi berfungsi di SSH: ketika mencoba SSH ke beberapa host, itu meminta kata sandi saya di host jarak jauh. Saya tidak bisa menggunakannya untuk menggunakan kunci pribadi SSH saya. Semuanya bekerja dengan baik dengan Fedora 22.
Kunci publik saya adalah kunci DSA ( ~/.ssh/id_dsa.pub
). Saya menggunakan OpenSSH 7.1 ( openssh-7.1p1-5.fc23.x86_64
).
Bagaimana cara saya mendapatkan otentikasi tanpa kata sandi untuk bekerja dengan benar lagi?
ssh -Q
. Ini menanyakan bagaimana cara mengatasi masalah kegagalan SSH. Saya memang menemukan beberapa materi di superuser.com/q/962918/93541 dan di tempat lain membantu mengidentifikasi solusi ini, tetapi jawaban di sana menjelaskan cara menggunakanssh -Q
dan tidak menjawab pertanyaan ini (misalnya, itu tidak menjelaskan cara memperbaikinya masalah ini), jadi menurut saya itu bukan dup. Yang di Unix & Linux adalah sangat mirip; Saya berharap saya pernah melihatnya sebelumnya. Terima kasih lagi untuk tautannya!Jawaban:
Ini adalah hasil dari peningkatan ke OpenSSH 7.0. Seperti yang dirilis oleh catatan rilis untuk OpenSSH 7.0 , "Dukungan untuk host ssh-dss dan kunci pengguna dinonaktifkan secara default saat run-time".
Solusinya adalah dengan menambahkan baris berikut
~/.ssh/config
pada setiap mesin klien (setiap mesin tempat Anda menjalankan klien SSH):Jika server menggunakan OpenSSH 7.0 atau yang lebih baru, Anda juga perlu menambahkan baris ini
/etc/ssh/sshd_config
di setiap mesin server.Atau, Anda dapat membuat kunci SSH yang sama sekali baru dan menambahkannya ke file otor_keys Anda di setiap server yang ingin Anda masuki. Saya sarankan Anda menggunakan RSA , untuk menghindari masalah kompatibilitas. Saya tidak merekomendasikan ECDSA, karena rupanya gnome-keyring-daemon tidak secara otomatis mengambil kunci SSH dari tipe ECDSA.
Komentar editorial: Mengapa orang OpenSSH menonaktifkan kunci DSA? Saya tidak tahu Sejauh yang saya bisa memastikan, tidak ada yang salah dengan keamanan kunci DSA (ssh-dss). The OpenSSH halaman web klaim bahwa ssh-DSS lemah, tetapi sejauh yang saya tahu, 1024-bit ssh-DSS tidak lemah dari 1024-bit RSA, dan kunci RSA 1024-bit yang tidak cacat.
sumber
Dua sen saya
Karena mengedit
.ssh/config
file untuk mengizinkan ini tampaknya bukan ide yang bagus , saya sarankanBuat kunci baru, dengan menggunakan alat terbaru.
Kemudian salin kunci publik baru (ke clipbord)
Log terakhir kali dengan menggunakan kunci lama:
Kemudian upgrade
@host
'sauthorized_keys
berkas, dengan menambahkan baru Anda pubkey dan logoutpaste, lalu Ctrl+D
Log dengan kunci baru dengan menggunakan sintaks default:
Kemudian upgrade
@host
'sauthorized_keys
berkas, dengan menghapus Anda berusia pubkey (saya menggunakansed -e 1d -i .ssh/authorized_keys
ketika pubkey lama saya adalah pada baris1
dari file ini).Saya sarankan untuk memperbarui server ssh Anda jika Anda bisa.
Uji apakah kunci lama tidak berfungsi lagi.
Ini tidak harus bekerja ;-)
Anda bahkan dapat memeriksa ulang apakah semuanya baik-baik saja:
sumber
~/.ssh/config
bukan ide yang bagus.~/.ssh/config
semata, melainkan dengan gagasan mengizinkan DSA. Terima kasih telah menjelaskan. Itu masuk akal. (Saya pikir saya sudah membahas jawaban saya dan komentar saya mengapa rekomendasi itu membingungkan, tetapi saya tidak akan mencoba memperdebatkannya di sini.).config
membuat Anda dapat melakukanssh
untuk waktu yang lama dan bahkan kabut bahwa Anda menggunakan algoritma yang lemah . Dengan menggunakan-o Pubkey...
pada baris perintah, Anda tidak akan memaafkan ada sesuatu untuk ditingkatkan .