SSH server is by default configured to allow an authenticating client several tries for a period before the authentication is considered a failure. The default configuration allows the users three attempts within 120 seconds (2 minutes) to authenticate, whereby the client will then be given the Permission denied error and the session closed.

The SSH server will log the failed login, and the user will then be allowed to log in again after the period has passed. Temporarily blocking failed SSH login might slow down malicious login attempts but will not deter brute-force attacks by bots.

Steps to manage failed logins in SSH:

  1. Launch terminal.
  2. Open SSHd configuration file using your preferred text editor.

    $ sudo vi /etc/ssh/sshd_config [sudo] password for user:

  3. Search for LoginGraceTime and set the value in seconds.

    LoginGraceTime 60

    Remove # if exist at the start of the line to uncomment.

    Can also use unit such as m for minute. Set the value to 0 to disable the feature.

    LoginGraceTime 1m

  4. Search for MaxAuthTries and set the number of times authentication attempt is allowed.

    MaxAuthTries 5

    Add the line if it doesn't already exist and remove # at the beginning of the line if it exists.

  5. Restart ssh service for changes to take effect.

    $ sudo systemctl restart sshd