Disconnesso: nessun metodo di autenticazione supportato disponibile


12

Ho lo stesso identico problema descritto in questo thread , ma la risposta accettata non è quella giusta per me, perché la home directory dell'utente è locale.

Penso di aver configurato tutto correttamente sul lato client (Windows 7, PAGEANT, PUTTYGEN e PLINK di PuTTY), ma non mi sembra che il meccanismo a chiave pubblica funzioni (login ssh basato su password funziona). Ho seguito tutti i passaggi, i suggerimenti e i suggerimenti in:

Ora sospetto che mi possa mancare qualcosa sul lato server (Linux, sshd), quindi sto pubblicando il /etc/ssh/sshd_configcontenuto corrente :

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

Hai idea di cosa sto facendo di sbagliato?

AGGIORNAMENTO: ho trovato un suggerimento per l'esecuzione di sshd in modalità debug , ed ecco l'output:

/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

Ora noto i due bad ownership or modes for directory /home/winwinmessaggi ma ho controllato la proprietà o le modalità per directory / home / winwin e AFAICT sono a posto:

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

E:

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

E:

/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

Cosa potrebbe essere sbagliato?

AGGIORNAMENTO II: Ho provato chmod 600come suggerito nella risposta di seguito:

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

E:

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

Ma non funziona ancora. Perché visualizzo ancora l' Authentication refused: bad ownership or modes for directory /home/winwinerrore?

Risposte:


9

Prova a prendere le autorizzazioni scrivibili dal gruppo dalla tua home directory:

chmod g-w ~/

Rendi la tua cartella .ssh leggibile / scrivibile / eseguibile solo da te :

chmod 700 ~/.ssh

Rendi leggibile / scrivibile il tuo file di chiavi autorizzato solo da te :

chmod 600 ~/.ssh/authorized_keys

Ciò dovrebbe rimuovere gli errori di autorizzazione.


Ho fatto proprio come mi hai suggerito ~/.sshe ~/.ssh/authorized_keys. Ancora niente fortuna. Per quanto riguarda l'ottenimento delle autorizzazioni scrivibili dal gruppo dalla home directory stessa, non posso farlo poiché ciò minerebbe l'intero scopo di questo utente / gruppo per cui è stato creato. La home directory di questo utente deve essere scrivibile dal gruppo (con lo stesso nome esatto e gid!). +1 per tentare di aiutare.
— Win Win

Grazie! chmod g-w ~/mi ha salvato dopo ore di follia e capelli tirati quando non potevo fare la ssh con stucco per conto di uno degli utenti, con altri utenti che lavoravano bene ...
— PavelS

Grazie Gah, ho creato la mia directory home con l'altro mio utente e mi mancava chmod gw ~ /
— Clarence Liu,

5

Successo!

Tutto quello che dovevo fare è passare StrictModesa no .

Per la sezione 3.14 nelle FAQ di OpenSSH e http://blogs.nullvision.com/?p=114 .

Wow.


Tuttavia, questa è più una soluzione alternativa che una soluzione. Fammi controllare qualcosa sulla mia scatola.
— Rob,

Il mio ls -lad .sshsta mostrando drwx, quindi chmod 700 ~/.sshi file all'interno sono tutti -rw, quindi chmod 600 ~/.ssh/*-SHOULD- funzionano.
— Rob,

Nevermind, saw La home directory di questo utente deve essere scrivibile dal gruppo (con lo stesso identico nome e gid!) In basso
— Rob

In questo modo è inutile!
— Adoro il

3

Ha avuto un problema simile. Quando ho dato un'occhiata in giro ho notato che avevo le mie directory home crittografate e sospettavo che fosse questo il problema. Ho copiato il file delle chiavi autorizzate in una directory esterna alla home directory crittografata, ho modificato le autorizzazioni in modo appropriato (chmod 700 [dir], chmod 600 [dir] / authorized_keys, ecc.).

Quindi modifica il tuo sshd_config per dire a sshd della nuova posizione per il file delle chiavi autorizzato, riavvia sshd e il gioco è fatto.

Sembra aver risolto il mio problema.


2

Sembra che le tue autorizzazioni per la home directory (o forse la tua cartella .ssh / authorized_keys) siano errate. La correzione di questi dovrebbe risolvere il problema di accesso. Prova chmod 600 /home/winwin/.ssh/*
Potrebbe essere necessario chmod 700 /home/winwin/.ssh.

SSHd rifiuterà di caricare il tuo authorized_keysfile se può essere scritto da chiunque diverso dal tuo utente (come proprietario) perché è un rischio per la sicurezza.


Grazie +1. Vedi il mio aggiornamento sopra, poiché non riesco ancora a capire quali dovrebbero essere le autorizzazioni / proprietà corrette.
— Win Win

Ci ho appena provato chmod 600 /home/winwin/.ssh/*. Non ha aiutato : - /
— WinVin

1
@WinWin l'hai impostato anche nella .sshdirectory? (Ho aggiornato la mia risposta).
— Darth Android

Si l'ho fatto. Ancora niente fortuna.
— Vinci il

2

Ho lottato per questo e alla fine ho trovato una soluzione che non causa una potenziale violazione della sicurezza come StrictModes No fa.

Assicurati che le tue impostazioni siano le seguenti:

chmod 0755 / home / {userdir}

chmod 0700 / home / {userdir} /.ssh

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

Dove {userdir} è la directory in questione.

La chiave è chmod 0755 che garantisce che solo l'utente può scrivere sull'unità principale. L'ho copiato dalla mia configurazione utente che ha funzionato e, presto!Anche gli altri nomi utente hanno iniziato a funzionare!

Spero che questo aiuti gli altri come me, e ti fa risparmiare un paio d'ore di tempo.


1

Questo messaggio di errore può anche essere causato da SELinux che impedisce l'accesso a sshd authorized_keys. Prova questo:

restorecon -FRvv ~/.ssh

(da questa risposta )


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 {} \;

3
Benvenuto in Super User! Sarebbe bello se potessi spiegare cosa fanno questi comandi.
— Slhck,

0

Nel mio caso era la home directory che aveva un altro proprietario (root) rispetto all'utente reale a cui appartiene questa home directory (la mia stupidità quando si crea la home directory con root per un altro utente).

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

ha risolto questo problema (e ovviamente attenersi alle autorizzazioni file / dir come condivise in altre risposte).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.