Ordine di autenticazione con SSH


22

Quando accedo via ssh con -vvedo che ssh si sta autenticando nel modo seguente

debug1: Authentications that can continue: publickey,gssapi-with-mic,password,hostbased

Vorrei cambiare l'ordine ... hai idea di come?

Il mio problema più grande è che l'utente con account bloccati, può ancora accedere tramite chiavi pubbliche. Ho scoperto che potrei aggiungere l'utente a un gruppo "ssh-bloccato" aggiungere negare quel gruppo dallo sshing, ma mi chiedo ancora se c'è un modo per dire a ssh'd: controlla la password prima delle chiavi ...


1
Penso che ti stai avvicinando a questo nel modo sbagliato - le chiavi sono (di solito) più sicure delle password. Se l'account è bloccato, è necessario dire al demone sshd di non consentire all'utente di accedere indipendentemente dal metodo di autenticazione.
EightBitTony,

Come ho detto, ho trovato una soluzione tramite DenyGroups. Lo sto chiedendo per interesse.
Oz123,

Risposte:


31

Il server ssh decide quali opzioni di autenticazione consente, il client ssh può essere configurato per decidere in quale ordine provarle.

Il client ssh utilizza l' PreferredAuthenticationsopzione nel file di configurazione ssh per determinarlo.

Da man ssh_config( guardalo online qui ):

PreferredAuthentications
             Specifies the order in which the client should try protocol 2 authentication methods.  This allows a client to prefer
             one method (e.g. keyboard-interactive) over another method (e.g. password).  The default is:

                   gssapi-with-mic,hostbased,publickey,
                   keyboard-interactive,password

Non credo sia possibile, senza giocare con la fonte, dire al server OpenSSH di preferire un certo ordine - se ci pensate, non ha comunque senso.


Se stai usando Git Bash per Windows, salva la tua configurazione ssh in~/.ssh/config
Spencer Williams

L'ordine può avere senso se un metodo dipende da uno precedente. Ad esempio, 2FA sotto la tastiera interattiva potrebbe dipendere dal fatto che l'utente abbia prima fornito una password valida.
Steveayre

Puoi pubblicare una fonte per cui hai copiato e incollato le informazioni di PreferredAuthentications sopra? Non lo vedo dentro man ssh, né dentro /etc/ssh/ssh_config, né dentro /etc/ssh/sshd_config. Dove hai preso queste informazioni?
Gabriel Staples

Trovato! Era dentro man ssh_config. Ho inviato una modifica per la revisione per aggiornare la tua risposta per contenere questa fonte. Si prega di citare le fonti la prossima volta! Grazie molto.
Gabriel Staples

18

Aggiungendo questo:

PreferredAuthentications keyboard-interactive,password,publickey,hostbased,gssapi-with-mic

... per me /etc/ssh/ssh_configmi ha aiutato a risolvere questo problema e ho risparmiato anche molto tempo!

Puoi verificare se funziona usando il ssh -v user@hostcomando per connettersi, dove -vsta per "verbose".


2
Assicurati di aggiungere questo al file corretto ssh_confige non sshd_config. Quest'ultimo farà fallire il tuo ssh!
Arance 13

0

Aggiungendo alle altre due risposte che già menzionano l' PreferredAuthenticationsopzione, vorrei aggiungere che non è necessario modificare alcun file per impostare questa impostazione se non si desidera . Piuttosto, puoi semplicemente impostarlo dalla riga di comando per una singola chiamata assh , con l' -oopzione, come segue:

ssh -o PreferredAuthentications=publickey,gssapi-with-mic,hostbased,keyboard-interactive,password user@hostname

Riferimenti:

  1. Per ulteriori informazioni PreferredAuthenticationssull'opzione, vedere man ssh_config( vedere online qui ). Leggi anche le ssh -oopzioni nelle man sshpagine del manuale ( online qui ).
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.