仅学习,不建议使用,但在自己私人服务器可以尝试
1.修改ssh配置文件
# 备份
cp /etc/ssh/sshd_config /etc/ssh/sshd_config-`date +%F`
# 检查LOCAL占用情况(LOCAL0-6选一个没被使用的)
cat /etc/rsyslog.conf |grep -i LOCAL
cat /etc/rsyslog.d/* |grep -i LOCAL
# 找到SyslogFacility ,修改日志程序类别为自定义类别(这里选用LOCAL1)
vim /etc/ssh/sshd_config
SyslogFacility LOCAL1

注:
- rsyslog留给用户的自定义类别只有LOCAL0~LOCAL7,而且有的服务器7默认已占用,所以能用的其实只有0-6
2.修改rsyslog.conf
vim /etc/rsyslog.conf
#找到RULE规则区,添加一行
local1.info /var/log/ssh.log
注:
- rsyslog配置文件默认在/etc/rsyslog.conf,找不到就执行rpm -qc rsyslog
- local1是你在sshd_config配置的自定义类别,info是日志打印级别,ssh.log是打印日志的文件位置(自定义,一般放在/var/log/)
- debug调试信息,info是标准信息,warning警告信息,err错误信息,emerg是紧急致命信息,重要性逐级递增日志量逐级减少。
3.日志文件授权
# 先查看别的rsyslog打的日志文件是什么权限,就改为一致的,如:
ll /var/log/syslog
#将ssh.log改为一致的属主属组,权限
chown syslog.adm /var/log/ssh.log
chmod 640 /var/log/ssh.log

注:
- 如果不改,可能会导致rsyslog没权限给这个日志文件打日志
4.重启rsyslog和ssh,重新加载配置文件
systemctl restart rsyslog
systemctl restart sshd
注:
- 重启ssh前,建议先开几个ssh远程端口,以防有什么问题导致无法远程