Saya mencoba menyiapkan login SSH tanpa kata sandi di CentOS 5.4:
- Saya membuat kunci publik RSA pada klien.
- ssh-copy-id dari klien ke server.
- Kunci ~ / .ssh / authorized_key terverifikasi berisi kunci klien.
Klien masih meminta kata sandi. Apa yang saya lewatkan?
Terima kasih.
EDIT: memeriksa ssh_config dan izin seperti yang disarankan. Ini adalah info debug dari klien:
debug2: key: /home/saguna/.ssh/identity ((nil))
debug2: key: /home/saguna/.ssh/id_rsa (0x2b31921be9a0)
debug2: key: /home/saguna/.ssh/id_dsa ((nil))
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug3: start over, passed a different list publickey,gssapi-with-mic,password
debug3: preferred gssapi-with-mic,publickey,keyboard-interactive,password
debug3: authmethod_lookup gssapi-with-mic
debug3: remaining preferred: publickey,keyboard-interactive,password
debug3: authmethod_is_enabled gssapi-with-mic
debug1: Next authentication method: gssapi-with-mic
debug3: Trying to reverse map address 192.168.1.75.
debug1: Unspecified GSS failure. Minor code may provide more information
Unknown code krb5 195
debug1: Unspecified GSS failure. Minor code may provide more information
Unknown code krb5 195
debug1: Unspecified GSS failure. Minor code may provide more information
Unknown code krb5 195
debug2: we did not send a packet, disable method
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /home/saguna/.ssh/identity
debug3: no such identity: /home/saguna/.ssh/identity
debug1: Offering public key: /home/saguna/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug1: Trying private key: /home/saguna/.ssh/id_dsa
debug3: no such identity: /home/saguna/.ssh/id_dsa
debug2: we did not send a packet, disable method
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
[email protected]'s password:
Jawaban:
9/10 kali itu karena ~ / .ssh / official_keys tidak berada pada mode yang benar.
sumber
~/.ssh
direktori tidak dapat ditulis oleh siapa pun selain pengguna.Periksa / etc / ssh / sshd_config untuk mengizinkan otentikasi dengan kunci. Anda harus memiliki sesuatu seperti ini di dalamnya, dan pastikan garis tidak dikomentari:
PS: jangan lupa untuk me-restart sshd setelah Anda memodifikasi file (/etc/init.d/sshd restart)
sumber
AuthorizedKeysFile
berkomentar dan saya juga harus menggunakan jalur absolut untukauthorized_keys
.Saya menemukan bahwa dengan sistem saya masalahnya adalah direktori pengguna (/ home / nama pengguna) dilengkapi dengan perizinan yang salah. Itu
drwxr-x-w-
dan itu perludrwxr-xr-x
(dengan izin tertulis hanya untuk pemilik). Solusinya adalah menggunakan chmod:sumber
Saya bukan ahli di sini, tetapi menemukan masalah seperti itu juga, berikut adalah dua sen saya di samping semua saran lainnya.
Terkadang
ssh-copy-id
menyalin kunci yang salah ke server jarak jauh (dapat terjadi jika Anda memiliki beberapa kunci dan / atau menggunakan nama-nama yang tidak standar untuk file kunci) atau agen otentikasi Anda salah konfigurasi.Berikut kutipan dari halaman manual :
Jadi pada dasarnya Anda ingin memeriksa itu:
ssh-add -L
output)ssh-copy-id
disalin kunci yang sama untuk mesin remote (hanya login ke remote server menggunakan password dan memeriksa isi~/.ssh/authorized_keys
)ssh-copy-id
kunci mana yang akan disalin:ssh-copy-id -i ~/.ssh/some_public_key
Semoga itu bisa membantu.
sumber
ssh-copy-id
adalah :,DEFAULT_PUB_ID_FILE=$(ls -t ${HOME}/.ssh/id*.pub 2>/dev/null | grep -v -- '-cert.pub$' | head -n 1)
yang akan default ke kunci pertama alfabet - dalam kasus saya saya punyaid_boot2docker.pub
(yang tampaknya nama default untuk hal - hal ssh boot2docker). Sepertinya ada banyak implementasi ssh-copy-id yang berbeda di sekitar; milik saya berasalbrew install ssh-copy-id
, yang pada gilirannya diambil dari openssh-portable. Halaman manual saya secara eksplisit menyebutkan perilaku ini ...Masalah yang paling umum adalah izin yang tidak valid di sisi server. Periksa bahwa tidak ada direktori home Anda,
~/.ssh
dan~/.ssh/authorized_keys
dapat ditulis oleh siapa pun kecuali Anda (khususnya mereka tidak boleh ditulis kelompok).Jika bukan itu masalahnya, jalankan
ssh -vvv server
dan lihat pandangan klien tentang percakapan. Khususnya, periksa apakah klien mencoba kunci dengan server.sumber
~/.ssh
dan~/.ssh/authorized_keys
tidak bisa ditulisi oleh siapa saja tetapi Anda.Selain semua hal di atas, kita selalu dapat memeriksa file log sshd:
sumber
Saya mencoba perbaikan lain tetapi menemukan bahwa saya harus mengubah direktori home agar tidak dapat ditulis oleh orang lain. Direktori rumah adalah 777. Saya mengubahnya ke 755 dan berhasil.
sumber
dalam kasus saya / etc / ssh / sshd_config berisi param berikut:
Tapi ssh-copy-id membuat file dengan nama Authorized_keys, jadi saya harus memodifikasi entri ke nama baru. info lebih lanjut tentang otor_keys2 usang
sumber
Sebagai pelengkap jawaban Omer Dagan untuk CentOS 7 yang lebih baru, gunakan:
untuk melihat log sshd di server.
sumber
Masalahnya adalah saya mengalami RSAAuthentication di / etc / ssh / ssh_config
sumber