假设我有两台 Solaris 服务器 A 和 B,并且我使用 sftp 从一台服务器连接到另一台服务器。
假设 B 尝试使用 SFTP 连接到 A。
那么A中如何检测B发送的sftp请求呢?有什么方法可以让我在登录到 A 的客户端控制台(如 putty)上显示一条消息,说明“B 正在尝试连接到您”?
我想过运行一个特定的脚本,它在进程列表中搜索 sftp,在一小段时间内连续搜索,但我认为这不准确。
现在我可以在B成功登录后立即从A向B发送一条消息,该消息将显示在我登录B的客户端屏幕上吗?
这些都可以通过shell脚本来完成吗?我一般都会使用solaris,那么solaris有具体的答案吗?
答案1
您可以使用以下命令wall
向所有终端发送消息:
概要
wall [-n] [-t 超时] [-g 组] [消息 |文件]描述
墙在所有当前登录用户的终端上显示消息、文件内容或标准输入。
您可以配置sshd
为使用 PAM(如果在 Solaris 下可用)并使用pam_exec
(https://linux.die.net/man/8/pam_exec)以便在每次 SSH 登录时收到通知。但在那个阶段,可能尚未确定它是否是 SFTP 会话。您可以在后台启动一个脚本来以某种方式检查 SFTP。