Mesin saya baru-baru ini berhenti menerima otentikasi kunci publik yang masuk. Saya memiliki desktop ubuntu 11.04 yang saya ssh masuk dari mesin windows. Saya menggunakan dempul dengan kontes. Saya dapat terhubung tetapi hanya dengan otentikasi kata sandi interaktif, tidak dengan kunci rsa yang telah saya siapkan.
Saya sudah memverifikasi bahwa kuncinya terdaftar di ~ / .ssh / Authorized_keys. Bagaimana cara memperbaikinya dan apa yang harus saya periksa?
ssh
authentication
Andrew Redd
sumber
sumber
~
,~/.ssh
dan~/.ssh/authorized_keys
hanya dapat ditulis oleh Anda (khususnya tidak ada izin menulis grup). Cari/var/log/auth.log
entri log yang dibuat pada saat upaya login Anda. Salin dan tempel ke dalam pertanyaan Anda (mengedit nama untuk privasi jika Anda mau). Juga periksa apakah masalahnya ada di sisi server atau tidak: salin kunci privat ke mesin Linux (Anda harus mengonversi file kunci privat Putty ke dalam format OpenSSH) dan melihat apakahssh localhost
berfungsi.Jawaban:
Jika otentikasi kunci publik tidak berfungsi: pastikan bahwa di sisi server, direktori home Anda (
~
),~/.ssh
direktori, dan~/.ssh/authorized_keys
file, semua hanya dapat ditulis oleh pemiliknya . Secara khusus, tidak satupun dari mereka harus dapat ditulis oleh grup (bahkan jika pengguna sendirian di grup).chmod 755
atauchmod 700
tidak apa-apa,chmod 770
tidak.Apa yang harus diperiksa ketika ada sesuatu yang salah:
ssh -vvv
untuk melihat banyak hasil debug. Jika Anda memposting pertanyaan yang menanyakan mengapa Anda tidak dapat terhubung dengan ssh, sertakan output ini (Anda mungkin ingin menganonimkan nama host dan pengguna)./var/log/auth.log
.sumber
Saya mengalami hal yang sama dan akhirnya menemukan bahwa itu karena saya mengenkripsi direktori home saya. SSH tidak dapat membaca file Authorized_key sampai Anda login, jadi pada dasarnya itu memaksa Anda untuk melakukan otentikasi kata sandi terlebih dahulu. Lihat bagian tentang direktori beranda yang dienkripsi pada tautan berikut:
https://help.ubuntu.com/community/SSH/OpenSSH/Keys#Encrypted_Home_Directory
sumber
Jika Anda memeriksa izin pada direktori, dan ada "." tepat setelah mereka, maka Anda mungkin telah mengaktifkan selinux, yang akan mengacaukan pertukaran kunci, dan default untuk identifikasi kata sandi manual.
Anda dapat menonaktifkan SELinux untuk memecahkan masalah dengan mengikuti petunjuk di sini: http://www.centos.org/docs/5/html/5.1/Deployment_Guide/sec-sel-enable-disable-enforcement.html , atau cukup edit / etc / selinux / config file dan ubah dari "menegakkan" menjadi "dinonaktifkan".
Semoga ini membantu.
sumber
chmod 600 ~/.ssh/authorized_keys
- file tersebut dapat ditulis kelompok. (via pyrosoft.co.uk/blog/2013/01/12/… )restorecon ~ -R
) adalah titik awal yang baik.Saya akan memastikan bahwa pengaturan Anda di / etc / ssh / sshd_config benar.
Untuk memaksakan penggunaan PKI saja dan melarang kata sandi, temukan barisnya
di file Anda, batalkan komentar dan atur ke
Saya juga akan membaca keseimbangan pengaturan untuk memastikan semuanya masuk akal. Secara khusus, cobalah untuk memastikan bahwa Anda menggunakan kunci RSA karena DSA diketahui dikompromikan.
sumber
Salah satu kemungkinan penyebab masalah adalah Anda memiliki kunci DSA tetapi sekarang SSH (tampaknya) default untuk memerlukan kunci RSA. Saya mendapat masalah saat meningkatkan ke 16,04. Anda dapat melihat lebih banyak di sini tetapi jawaban singkatnya adalah menambahkan yang berikut ke
~/.ssh/config
:sumber
Saya memperbaiki masalah ini dengan menghapus komentar "PasswordAuthentication yes" di / etc / ssh / sshd_config.
sumber
Karena kebutuhan untuk pemecahan masalah komunikasi antara dua mesin yang berbeda, saya memiliki dua kunci pribadi di
~/.ssh
sisi klien.Alih-alih mengonfigurasi setiap host server dengan kunci privat masing-masing
~/.ssh/identity
seperti yang seharusnya saya lakukan, saya mengonfigurasi kunci sekunder (dan dalam hal ini salah) untuk semua host:Memperbaiki
~/.ssh/identity
masalah yang diselesaikan:sumber
Saya hanya memiliki masalah yang sama tetapi mengubah izin dengan
chmod
tidak membantu, karena ternyata saya tidak memiliki kepemilikan~/.ssh/authorized_keys
file tersebut. Anda dapat mengubah kepemilikan.ssh
direktori dengan:sumber
Entah bagaimana ini berhasil bagi saya:
root @ kaiser: ~ # vim / etc / ssh / sshd_config
Ubah baris ini dari yes ke no 28 StrictModes no
Coba lagi
sysadmin @ suselinux1: ~> con sysadmin kaiser Selamat datang di Ubuntu 12.04.1 LTS (GNU / Linux 3.2.0-25-generic i686)
Login terakhir: Jumat 9 Nov 15:40:11 2012 dari 10.1.3.25 sysadmin @ kaiser: ~ $ date vie nov 9 17:53:11 CST 2012 sysadmin @ kaiser: ~ $
sumber
sshd
dokumen yang lebih baik , yang tidak persis termasuk dalam kategori "pembacaan Sabtu yang bagus"