Server saya menjalankan CentOS 5.3. Saya menggunakan Mac yang menjalankan Leopard. Saya tidak tahu yang bertanggung jawab untuk ini:
Saya dapat masuk ke server saya dengan baik melalui otentikasi kata sandi. Saya telah melalui semua langkah untuk menyiapkan PKA (seperti yang dijelaskan di http://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-ssh-beyondshell.html ), tetapi ketika Saya menggunakan SSH, bahkan menolak untuk mencoba verifikasi publickey. Menggunakan perintah
ssh -vvv user@host
(di mana -vvv mengangkat verbosity ke level maksimum) Saya mendapatkan output yang relevan berikut:
debug2: key: /Users/me/.ssh/id_dsa (0x123456)
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug3: start over, passed a different list publickey,gssapi-with-mic,password
debug3: preferred keyboard-interactive,password
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
diikuti oleh prompt untuk kata sandi saya. Jika saya mencoba untuk memaksa masalah ini
ssh -vvv -o PreferredAuthentications=publickey user@host
saya mendapat
debug2: key: /Users/me/.ssh/id_dsa (0x123456)
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug3: start over, passed a different list publickey,gssapi-with-mic,password
debug3: preferred publickey
debug3: authmethod_lookup publickey
debug3: No more authentication methods to try.
Jadi, meskipun server mengatakan menerima metode otentikasi publickey, dan klien SSH saya bersikeras, saya ditolak. (Perhatikan tidak adanya garis "Penawaran kunci publik:" di atas.) Ada saran?
Jawaban:
Periksa apakah mesin Centos Anda memiliki:
di sshd_config
dan pastikan bahwa Anda memiliki izin yang tepat pada direktori ~ / .ssh / direktori mesin centos.
harus melakukan trik.
sumber
chmod go-w ~/
jika belum.755
(seperti yang dikatakan Jinyu Liu di bawah ini)/etc/ssh/ssh_config
Saya memiliki masalah serupa - PC jarak jauh tidak dapat menggunakan otentikasi kunci publik untuk masuk ke server CentOs 6. Masalah dalam kasus saya terkait SELinux - direktori home pengguna yang mencoba masuk memiliki pesan tentang konteks keamanan. Saya menyelesaikan ini dengan menggunakan
restorecon
alat sebagai berikut:sumber
/home
apa pun yang biasanya ada dalam tata letak direktori/home
.restorecon -Rv /root
1- periksa / etc / ssh / sshd_config Anda, pastikan sudah
2 - periksa log aman dari mesin jarak jauh, lihat detail daemon sshd error log. misalnya di Ubuntu saya
Kemudian periksa kepemilikan dan mode untuk direktori / home / xxx, mungkin Anda perlu menjalankan ini
sumber
Periksa kembali apakah izin Anda benar dan struktur file (khususnya ejaan) sudah benar, baik untuk mesin lokal maupun jarak jauh. URL yang Anda referensikan menyatakan semuanya, tetapi ada baiknya memeriksa apa yang Anda cocokkan. Biasanya izin akan menimbulkan kesalahan yang relevan.
Sudahkah Anda memeriksa bahwa sshd_config pada kotak CentOS 5.3 Anda diatur untuk mengizinkan PubkeyAuthentication atau RSAAuthentication?
Periksa log server SSH pada sistem CentOS - mungkin memberikan informasi lebih lanjut. Saya tidak yakin apakah CentOS melakukan kunci ssh blacklist memeriksa apakah debian melakukannya, tetapi saya telah melihat penolakan ssh publickey yang relatif diam sejauh keluaran -vvv berjalan, tetapi log cukup jelas menjelaskan apa yang sedang terjadi
sumber
Oke! Ternyata itu adalah masalah sisi klien. (Saya pikir setiap masalah sisi server akan menghasilkan keluaran debug yang lebih berguna.) Untuk alasan yang tidak diketahui oleh saya, pada Mac saya, file / etc / ssh_config memiliki baris
Saya berkomentar satu baris, dan sekarang semuanya berfungsi dengan baik.
sumber
Selain mode file / direktori, pastikan kepemilikannya benar! Seorang pengguna harus memiliki direktori home sendiri, .ssh /, dan file di dalamnya.
Saya harus berlari
chown -R $user:$user /home/$user
untuk melewati kegagalan ssh saya.sumber
Juga periksa apakah ia dapat memasok kunci secara otomatis atau tidak, gunakan jalur -i / ke / kunci jika tidak atau hanya untuk menguji
sumber
Kedengarannya seperti masalah konfigurasi bagi saya. Seperti yang disarankan Daniel, ada dua hal yang perlu diperiksa:
$HOME/.ssh/authorized_keys
dapat dibaca; dansumber
Periksa nama pengguna dengan yang Anda coba masuk. Secara default itu adalah nama pengguna Anda di mesin lokal.
sumber
Keluaran klien seperti pada
ssh -v
akan mengungkapkan bahwa ada masalah pada langkah tertentu dalam protokol, tetapi ketika itu karena sesuatu di server klien tidak akan diberitahu penyebabnya. Periksa file log server untuk mencari tahu apa yang salah. Anda mungkin harusroot
memiliki izin untuk melakukannya. Misalnya, untuk yangsshd
dikonfigurasi untuk masuk ke syslog, Anda mungkin menemukan pesan di/var/log/secure
. Seperti yang ini:Alasan dalam kasus ini adalah default (bodoh)
default
dari0002
. Itu artinya, tulis akses untuk grup. (Groupname = nama pengguna, tapi tetap saja.) Daemon SSH tidak akan mempercayai file yang dapat dirusak oleh orang lain selain pengguna (well, danroot
, tentu saja). Anda dapat memecahkan masalah menggunakanchmod
.sumber
Saya baru saja terjebak dalam masalah yang sama mengakses dengan fedora core 16 hingga 5,5 sen
log dan verbose tampak persis sama
masalahnya adalah kunci publik, ia mendapatkan beberapa data palsu, memperbaruinya dan mempostingnya di sshd_server, Anda sshd_client mengirim informasi kunci tetapi tidak dikenali oleh server (itu tidak cocok dengan salah satu kunci di otor_keys)
sumber
Lain digigit oleh ini. Setelah pencarian panjang ternyata saya secara eksplisit memberi makan ssh kunci publik (dengan opsi -i) alih-alih kunci pribadi. Doh!
sumber