Come disabilitare la password riprova nel comando ssh


11

Voglio che il comando ssh consenta una sola possibilità di digitare la password, se la password è stata errata per la prima volta lo ssh tornerà

Permission denied (publickey......).

C'è un flag che dice a ssh di richiedere solo una volta la password?

Invece di:

[nir@dhcppc4 ~]$ ssh pokemon@192.168.1.103
pokemon@192.168.1.103's password: 
Permission denied, please try again.
pokemon@192.168.1.103's password: 
Permission denied, please try again.
pokemon@192.168.1.103's password: 
Permission denied (publickey.....).

Voglio:

[nir@dhcppc4 ~]$ ssh pokemon@192.168.1.103
pokemon@192.168.1.103's password: 
Permission denied (publickey.....).

La soluzione deve essere sul lato client (ad es. Qualche flag sul comando ssh o usando pipeline), non riesco a toccare sshd_configo qualsiasi altro file di configurazione del sistema. Poiché, in generale, creo software di terze parti (quindi non posso generare chiavi né configurare file di sistema) che accedono ai server nella LAN, le password vengono salvate nel DB (quindi non è necessario un secondo tentativo). E nel mio codice se sarò in grado di presumere che ho un solo tentativo di ssh/ scpsemplificherà il codice pertinente.


1
Come mostrano le risposte, puoi modificarlo, ma perché lo vuoi? Le persone commettono spesso errori di battitura e le impostazioni predefinite sono impostate per consentire tali fragilità. Una domanda migliore potrebbe essere "come posso bloccare un utente che ha fallito n tentativi di accesso?" in particolare se stai cercando di proteggerti da accessi dannosi.
msw,

La mia ragione è complessa e lunga. Quello che posso dire è che se la password era errata per la prima volta, continuerà ad essere errata le seguenti volte.
Nir

2
Vuoi svolgere la funzione di amministrazione del sistema più importante (autenticazione) ma non riesci a toccare i file di configurazione del sistema? Sei sfortunato. Se ti interessa spiegare la tua lunga e complessa ragione, forse potremmo essere in grado di vedere la X invece della Y che hai presentato nel tuo problema XY
msw,

1
L'unico modo in cui riesco a vedere che questo è anche un problema è se stai eseguendo l'autenticazione della password in modo non interattivo, nel qual caso qualsiasi utilità stai utilizzando che dovrebbe avere la possibilità di interrompere dopo una password non riuscita o, in caso contrario , quindi tale utilità dovrebbe essere l'oggetto di questa domanda.
Sammitch,

1
Ho anche notato che ssh sta notando un tentativo fallito di autenticazione della chiave pubblica, hai mai pensato di copiare la tua chiave pubblica ed evitarlo del tutto?
Sammitch,

Risposte:


14

Nella pagina man di sshd config man 5 sshd_config:

 MaxAuthTries
     Specifies the maximum number of authentication attempts permitted
     per connection.  Once the number of failures reaches half this
     value, additional failures are logged.  The default is 6.

Quindi un'impostazione MaxAuthTries 2sarà l'impostazione di cui avrai bisogno. sshddovrà essere riavviato in seguito (deve essere eseguito come root):

/etc/init.d/ssh restart 

o

service ssh restart

Sul lato client questo può essere impostato con le impostazioni ssh (cercare man 5 ssh_configle impostazioni che è possibile applicare):

 NumberOfPasswordPrompts
         Specifies the number of password prompts before giving up.  The
         argument to this keyword must be an integer.  The default is 3.

Quindi modifica il tuo ~/.ssh/configfile e aggiungi:

 Host <name_or_ip_of_host|*>
     NumberOfPasswordPrompts 1

Dove <name_or_ip_of_host|*>l'IP canonico o il nome host che si sta utilizzando nella riga di comando o *per tutti i tentativi di connessione dell'host. Puoi anche specificarlo sulla riga di comando senza dover modificare il tuo /.ssh/configfile:

  ssh -o NumberOfPasswordPrompts=1 user@hostname 

Si prega di consultare la domanda di modifica. Volevo un po 'di uso di bandiera / pipeline e non cambiamenti insshd_config
Nir

Sto modificando la mia risposta dando opzioni lato client.
Drav Sloan,

0

Guarda MaxAuthTries in sshd_config. Il valore predefinito è 6, quindi tieni presente che potresti provare l'autenticazione pubkey prima di provare l'autenticazione password quando selezioni il tuo valore.

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.