In Centos or RHEL, ssh failed login attempts are recorded in /var/log/secure file. Bash script the essential for DevOps Roles. You can ref to Bash script tutorial.
[huupv@localhost ~]$ sudo egrep "Failed password" /var/log/secure
To display a list of IP address ssh failed login attempts
[huupv@localhost ~]$ sudo egrep "Failed password" /var/log/secure | awk '{print $9 ": " $11}' | cut -d ';' -f1 | sed '/^\s*$/d' | uniq -c | sort -nr
I share bash script ssh failed login attempts on Linux. Checking log real time when user login into your system. In my bash script, I written three function : f_check_folder , f_get_log and f_failed_ssh. Running bash script with user root or user privilege.
Bash script ssh failed login attempts
#!/bin/bash FILE1=/var/log/secure FOLDER=/tmp/failed_ssh TEMP_LOG=$FOLDER/tmp_secure.log NUMBER=/tmp/failed_ssh/number.txt #################### echo "HOSTNAME: `hostname`" ################### f_check_folder () { if [[ -d $FOLDER ]]; then if [[ ! -s $NUMBER ]]; then touch $NUMBER echo 0 > $NUMBER fi else mkdir -p $FOLDER touch $NUMBER echo 0 > $NUMBER fi } f_get_log () { NUM=`cat $NUMBER` SUM=`expr "$NUM" + 1` tail -n +"$SUM" $FILE1 > $TEMP_LOG echo `wc -l < $FILE1` > $NUMBER } f_failed_ssh () { sudo egrep "Failed password" $TEMP_LOG | awk '{print $9 ": " $11}' | cut -d ';' -f1 | sed '/^\s*$/d' | uniq -c | sort -nr } f_check_folder f_get_log f_failed_ssh
The screen output terminal:
Conclusion
Thought the article, you can use Bash script ssh failed login attempts. I hope will this your helpful.