Saya telah berhasil membuat auth berbasis kunci untuk pengguna root dari mesin A saya ke mesin B.
Sekarang, saya membuat pengguna baru pada mesin B, sama seperti pada mesin A, sebut saja dia USER
. Saya membuat dir home untuknya di mesin B /home/USER
dan saya ingin membuat kunci berbasis auth untuknya dari mesin A ke mesin B.
Jadi, saya berlari menggunakan mesin
ssh-keygen -t rsa
, menerima semua jalur, jadi/home/USER/.ssh/id_rsa
dan tanpa frasassh-copy-id -i /home/USER/.ssh/id_rsa.pub USER@BmachinesIP
, memasukkan kata sandi dan dipijat
Sekarang coba masuk ke mesin bla bla bla
Jadi semuanya tampak baik-baik saja.
Tetapi ketika saya mencoba menghubungkan ssh USER@BmachinesIP
saya diminta kata sandi. Saya mencoba melihat log dan berlari ssh -vvv USER@BmachinesIP
dan ini adalah bagian dari output:
debug1: Authentications that can continue: publickey,password
debug3: start over, passed a different list publickey,password
debug3: preferred gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering public key: /home/USER/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /home/USER/.ssh/id_dsa
debug3: no such identity: /home/USER/.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
USER@BmachinesIP's password:
Jadi, adakah yang bisa memberi tahu saya apa yang telah saya lakukan salah atau apa yang harus saya ubah? Mungkin masalahnya ada di izin, di sini adalah:
pada mesin:
drwx------ 2 USER USER SIZE DATE TIME .ssh
-rw------- 1 USER USER 1675 2011-10-31 14:36 id_rsa
-rw-r--r-- 1 USER USER 413 2011-10-31 14:36 id_rsa.pub
dan pada mesin B:
drwx------ 2 USER defaultGroup SIZE DATE TIME .ssh
-rw------- 1 USER defaultGroup SIZE DATE TIME authorized_keys
sumber
chmod o-w ~/; chmod 700 ~/.ssh; chmod 600 ~/.ssh/authorized_keys
lalu berfungsi. Disalin dari jawaban Maxime R. dari sini: askubuntu.com/questions/54670/passwordless-ssh-not-workingMasalah yang sama bagi saya menginstal CentOS7 baru.
1. periksa izin dir home dan izin ~ / .ssh dan ~ / .ssh / Authorized_key (sesuai @erik)
2. centang / etc / ssh / sshd_config pengaturan && layanan sshd restart (setelah setiap pengeditan) Berguna: coba "LogLevel VERBOSE" di sshd_config.
Saya masih mendapatkan prompt kata sandi setelah memeriksa semua yang beres.
Jalankan ssh client dengan log -vvv:
Log server (/ var / log / secure):
ssh server tidak mengirim lebih banyak info kesalahan ke klien karena itu akan menjadi risiko keamanan.
Jika saya menjalankan sshd pada port yang berbeda 'sshd -p 5555 -d'. Kuncinya bekerja. Login tanpa kata sandi ok. WTF?
Kemudian saya menonaktifkan selinux (atur SELINUX = nonaktif di / etc / selinux / config) dan reboot. Login tanpa kata sandi kemudian berfungsi dengan baik.
pengaturan sshd_config saya yang aktif saat ini:
Jadi alangkah baiknya jika kita dapat mengubah sesuatu yang kecil di selinux untuk mendapatkan login ssh tanpa kata sandi untuk bekerja. Adakah yang bisa memperbaiki jawabannya?
sumber
Solusinya tidak menonaktifkan SELinux tetapi untuk memperbaiki izin SELinux dari direktori pengguna. Konteks direktori pengguna harus diatur ke
user_home_t
.Untuk memeriksa,
Jika konteks untuk direktori pengguna Anda adalah lebih dari itu
user_home_t
, SELinux tidak akan mengizinkan SSH melalui kunci publik ke direktori pengguna tersebut untuk pengguna tersebut.Memperbaiki,
Login berbasis kunci sekarang harus berfungsi.
sumber