每当有人通过SSHlogin时向我发送电子邮件

有没有办法configurationsshd,以便每当有人通过SSHlogin时向我发送电子邮件?

Sshd本身不会为你做这个,但是你可以用pam_exec模块来完成你想要的(假设你已经使用了PAM SSH)。 像这样的东西可能会工作(在/etc/pam.d/sshd ):

 session optional pam_exec.so /path/to/your/script 

你也可以在有人login的时候看到/var/log/secure (或者你本地的等效的)sshd日志,然后根据这个信息触发和发邮件。

你也可以使用sshd中的ForceCommand选项来破解一些东西。 您可以使用ForceCommand运行脚本来发送电子邮件,然后使用SSH_ORIGINAL_COMMAND环境variables来运行用户的shell(或者其他正在尝试运行的其他命令)。 我只提到这一点,因为它可能工作,不是因为我认为这是一个好主意。

你可以把它附加到/ etc / profile的末尾

 /bin/bash -c 'HN=`/bin/hostname`; IP=`/bin/hostname -i`; /bin/bash -c "/bin/hostname -i; /bin/hostname; echo; /usr/bin/who --ips; echo; /usr/bin/who --all" | /usr/bin/mailx -s "LOGIN ALERT - $HN ($IP)" root' 

每次bash(用户的shell)启动时,这都会向root用户发送一个login用户列表。

您可以使用swatch (用于监视日志文件并发送带有匹配正则expression式的行的电子邮件)来监视/var/log/secure (或者您的操作系统在哪里loginsshlogin名),寻找像

 sshd[xxxxx]: pam_unix(sshd:session): session opened for user foo by (uid=0) 

并相应地发送邮件。