Terputus: tidak tersedia metode otentikasi yang didukung

12

Saya memiliki masalah yang sama persis dijelaskan di utas ini , tetapi jawaban yang diterima tidak ada yang tepat untuk saya, karena direktori home pengguna adalah lokal.

Saya pikir saya telah mengkonfigurasi semuanya dengan benar di sisi klien (Windows 7, PAGEANT, PUTTYGEN dan PLINK Putty), namun sepertinya saya tidak membuat mekanisme kunci publik berfungsi (kata sandi login ssh berhasil bekerja). Saya mengikuti semua langkah, isyarat, dan petunjuk di:

Saya sekarang menduga bahwa saya mungkin kehilangan sesuatu di sisi server (Linux, sshd), jadi saya memposting /etc/ssh/sshd_configkonten saat ini :

Protocol 2
SyslogFacility AUTHPRIV
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys
PasswordAuthentication no
PermitEmptyPasswords yes
ChallengeResponseAuthentication no
UsePAM yes
X11Forwarding yes
Subsystem       sftp    /usr/libexec/openssh/sftp-server

Adakah yang saya tahu salah?

UPDATE: Saya menemukan tip untuk menjalankan sshd dalam mode debug , dan ini adalah outputnya:

/home/winwin> /usr/sbin/sshd -d
debug1: sshd version OpenSSH_4.2p1
debug1: read PEM private key done: type RSA
debug1: private host key: #0 type 1 RSA
debug1: read PEM private key done: type DSA
debug1: private host key: #1 type 2 DSA
debug1: rexec_argv[0]='/usr/sbin/sshd'
debug1: rexec_argv[1]='-d'
debug1: Bind to port 22 on ::.
Server listening on :: port 22.
debug1: Bind to port 22 on 0.0.0.0.
Bind to port 22 on 0.0.0.0 failed: Address already in use.
debug1: Server will not fork when running in debugging mode.
debug1: rexec start in 4 out 4 newsock 4 pipe -1 sock 7
debug1: inetd sockets after dupping: 3, 3
Connection from 192.168.1.8 port 49828
debug1: Client protocol version 2.0; client software version PuTTY_Release_0.60
debug1: no match: PuTTY_Release_0.60
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_4.2
debug1: permanently_set_uid: 74/74
debug1: list_hostkey_types: ssh-rsa,ssh-dss
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: client->server aes256-ctr hmac-sha1 none
debug1: kex: server->client aes256-ctr hmac-sha1 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST_OLD received
debug1: SSH2_MSG_KEX_DH_GEX_GROUP sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_INIT
debug1: SSH2_MSG_KEX_DH_GEX_REPLY sent
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: KEX done

debug1: userauth-request for user winwin service ssh-connection method none
debug1: attempt 0 failures 0
debug1: PAM: initializing for "winwin"
debug1: PAM: setting PAM_RHOST to "win7client"
debug1: PAM: setting PAM_TTY to "ssh"
Failed none for winwin from 192.168.1.8 port 49828 ssh2
debug1: userauth-request for user winwin service ssh-connection method publickey
debug1: attempt 1 failures 1
debug1: test whether pkalg/pkblob are acceptable
debug1: temporarily_use_uid: 513/513 (e=0/0)
debug1: trying public key file /home/winwin/.ssh/authorized_keys
Authentication refused: bad ownership or modes for directory /home/winwin
debug1: restore_uid: 0/0
debug1: temporarily_use_uid: 513/513 (e=0/0)
debug1: trying public key file /home/winwin/.ssh/authorized_keys
Authentication refused: bad ownership or modes for directory /home/winwin
debug1: restore_uid: 0/0
Failed publickey for winwin from 192.168.1.8 port 49828 ssh2
Received disconnect from 192.168.1.8: 14: No supported authentication methods available
debug1: do_cleanup
debug1: PAM: cleanup
debug1: do_cleanup
debug1: PAM: cleanup

Sekarang, saya melihat dua bad ownership or modes for directory /home/winwinpesan tetapi saya memeriksa kepemilikan atau mode untuk direktori / home / winwin dan AFAICT mereka baik-baik saja:

/home> ls -lad winwin
drwxrwxr-x  21 winwin winwin 4096 Jul 13 21:24 winwin

Dan:

/home/winwin> ls -lad .ssh
drwxr-xr-x  2 winwin winwin 4096 Jul 14 12:06 .ssh

Dan:

/home/winwin/.ssh> ls -lad *
-rw-r--r--  1 winwin winwin 210 Jul 14 12:06 authorized_keys
-rw-r--r--  1 winwin winwin 210 Jul 14 01:58 authorized_keys.pub
-rw-r--r--  1 winwin winwin 394 Jul 14 01:57 authorized_keys.pub.orig

Apa yang mungkin salah?

UPDATE II: Saya mencoba chmod 600seperti yang disarankan dalam jawaban di bawah ini:

/home/winwin> ls -lad .ssh
drw-------  2 winwin winwin 4096 Jul 14 13:13 .ssh

Dan:

/home/winwin/.ssh> ls -lad *
-rw-------  1 winwin winwin 210 Jul 14 12:06 authorized_keys

Tapi itu masih tidak berhasil. Mengapa saya masih mendapatkan Authentication refused: bad ownership or modes for directory /home/winwinkesalahan?

Menang
sumber

Jawaban:

9

Coba ambil izin grup yang dapat ditulisi dari direktori home Anda:

chmod g-w ~/

Jadikan folder .ssh Anda hanya dapat dibaca / ditulis / dieksekusi oleh Anda :

chmod 700 ~/.ssh

Buat file kunci resmi Anda hanya dapat dibaca / ditulis oleh Anda :

chmod 600 ~/.ssh/authorized_keys

Itu harus menghapus kesalahan izin.

John T
sumber
Saya melakukan persis seperti yang Anda sarankan ~/.sshdan ~/.ssh/authorized_keys. Masih belum berhasil. Adapun untuk mengambil izin grup yang dapat ditulisi dari direktori home itu sendiri, saya tidak bisa melakukan itu karena akan merusak seluruh tujuan pengguna / grup ini telah dibuat. Direktori home pengguna ini harus dapat ditulis oleh grup (memiliki nama dan gid yang sama persis!). +1 untuk mencoba membantu.
Menangkan
Terima kasih! chmod g-w ~/menyelamatkan saya setelah berjam-jam kegilaan dan menarik rambut ketika saya tidak bisa ssh dengan dempul atas nama salah satu pengguna, dengan pengguna lain bekerja ok ...
PavelS
Gah ya terima kasih, saya membuat direktori home saya dengan pengguna saya yang lain, dan saya kehilangan chmod gw ~ /
Clarence Liu
5

Keberhasilan!

Yang harus saya lakukan adalah mengubah StrictModeske tidak .

Per bagian 3.14 di FAQ OpenSSH dan http://blogs.nullvision.com/?p=114 .

Wow.

Menang
sumber
Hmm, itu lebih merupakan solusi daripada solusi. Biarkan saya memeriksa sesuatu di kotak saya.
Rob
Saya ls -lad .sshmenunjukkan drwx, jadi chmod 700 ~/.sshdan file-file di dalamnya semuanya -rw, jadi chmod 600 ~/.ssh/*-SHOULD- bekerja.
Rob
Nevermind, see Direktori home pengguna ini harus dapat ditulis oleh grup (memiliki nama dan gid yang sama persis) di bawah
Rob
Cara ini tanpa pengguna!
Cinta
3

Punya masalah serupa. Ketika melihat-lihat, saya melihat bahwa direktori rumah saya sudah dienkripsi, dan diduga itulah masalahnya. Saya menyalin file kunci yang diotorisasi ke direktori di luar direktori home terenkripsi, mengubah izin dengan tepat (chmod 700 [dir], chmod 600 [dir] / berwenang_keys, dll.).

Kemudian edit sshd_config Anda untuk memberi tahu sshd tentang lokasi baru untuk file kunci yang diotorisasi, restart sshd, dan hanya itu.

Tampaknya telah memperbaiki masalah saya.

merah
sumber
2

Sepertinya izin Anda untuk direktori home (atau mungkin folder .ssh / official_keys Anda) salah. Memperbaiki itu harus memperbaiki masalah login. Coba chmod 600 /home/winwin/.ssh/*
Anda mungkin perlu chmod 700 /home/winwin/.sshjuga.

SSHd akan menolak untuk memuat authorized_keysfile Anda jika dapat ditulis oleh siapa pun selain pengguna Anda (sebagai pemilik) karena itu merupakan risiko keamanan.

Darth Android
sumber
Terima kasih +1. Lihat pembaruan saya di atas, karena saya masih tidak tahu apa yang seharusnya menjadi hak akses / kepemilikan.
WinWin
Saya baru saja mencoba chmod 600 /home/winwin/.ssh/*. Itu tidak membantu. : - /
WinWin
1
@ WinWin, apakah Anda juga mengaturnya di .sshdirektori? (Saya memperbarui jawaban saya).
Darth Android
Ya saya lakukan. Masih belum berhasil.
Menangkan
2

Saya berjuang melalui ini dan akhirnya menemukan solusi yang tidak menyebabkan pelanggaran keamanan potensial seperti StrictModes Tidak .

Pastikan pengaturan Anda adalah sebagai berikut:

chmod 0755 / home / {userdir}

chmod 0700 / home / {userdir} /.ssh

chmod 0600 / home / {userdir} /.ssh/authorized_keys

Di mana {userdir} adalah direktori yang dimaksud.

Kuncinya adalah chmod 0755 yang memastikan bahwa hanya pengguna yang dapat menulis ke drive rumah. Saya menyalin ini dari konfigurasi pengguna saya yang berfungsi, dan, presto! Nama pengguna lain mulai bekerja juga!

Semoga ini bisa membantu orang lain seperti saya, dan menghemat waktu beberapa jam.

smcjones
sumber
1

Pesan kesalahan ini juga dapat disebabkan oleh SELinux yang mencegah sshd mengakses authorized_keys. Coba ini:

restorecon -FRvv ~/.ssh

(dari jawaban ini )

RomanSt
sumber
0
chown -R winwin.winwin /home/winwin/
chmod 700 /home/winwin/
find /home/winwin/ -type d -exec chmod 700 {} \;
find /home/winwin/ -type f -exec chmod 600 {} \;
Paman Bob
sumber
3
Selamat Datang di Pengguna Super! Alangkah baiknya jika Anda bisa menjelaskan apa yang dilakukan perintah ini.
slhck
0

Dalam kasus saya itu adalah direktori home yang memiliki pemilik lain (root) daripada pengguna sebenarnya yang menjadi direktori home ini (kebodohan saya ketika membuat direktori home dengan root untuk pengguna lain).

Chown [user]:[group] /home/[user] 

telah menyelesaikan masalah ini (dan tentu saja tetap pada izin file / dir sebagaimana dibagikan dalam jawaban lain).

Philippe
sumber