将 ssh 登录发送到 Mattermost 的 bash 脚本的问题 [重复]

Posted

技术标签:

【中文标题】将 ssh 登录发送到 Mattermost 的 bash 脚本的问题 [重复]【英文标题】:Problems with bash script thats send ssh logins to Mattermost [duplicate] 【发布时间】:2019-09-07 14:11:33 【问题描述】:

我的问题是我的脚本没有将正确的变量发送到我的 Mattermost 频道。当用户使用 ssh 登录到我的服务器时,我将发送我的脚本,并使用名称、ip 等。并在登录失败时将信息发送到另一个频道。

我已经阅读了很多示例并尝试过。当用户使用 ssh 登录时,我可以向频道发送短信,但不包括信息。 我尝试了 Mattersend 而不是 curl。

#!/bin/bash

#Variable
USER="User:          $PAM_USER"
REMOTE="Remote host: $PAM_RHOST"
SERVICE="Service:    $PAM_SERVICE"
TTY="TTY:            $PAM_TTY"
DATE="Date:          `date`"
SERVER="Server:      `uname -a`"
LOGINMESSAGE="$PAM_SERVICE login on `hostname -s` for account    $PAM_USER"

if [ "$PAM_TYPE" = "open_session" ]
then
# dont function
curl -i -X POST -d 'payload="text": "$PAM_RHOST" ,    "username":"ssh", "channel":"monitoring"' \  https://domain/hooks/xxx
# function
curl -i -X POST -d 'payload="text": "Hello, world!", "username":"sshbot", "channel":"monitoring"' \  https://domain/hooks/xxx
fi
exit 0

脚本在 pam.d 配置中作为可选启动

我希望在登录成功时传输变量。

【问题讨论】:

【参考方案1】:

'payload="text": "$PAM_RHOST" ...' 用单引号括起来。它不允许扩展变量$PAM_RHOST

如果你需要扩展,改变

curl -i -X POST -d 'payload="text": "$PAM_RHOST" ,    "username":"ssh", "channel":"monitoring"' \  https://domain/hooks/xxx

进入,

curl -i -X POST -d 'payload="text": '"$PAM_RHOST"' ,    "username":"ssh", "channel":"monitoring"' \  https://domain/hooks/xxx

【讨论】:

感谢阿努比斯。我将其更改为您的示例,但随后他没有向频道发送任何内容。 如果您在输入正确的$PAM_RHOST 值的同时手动运行相同的命令,它是否按预期工作?如果是这样,请确保在脚本中正确设置了$PAM_RHOST(只需尝试echo $PAM_RHOST 您好 Anubis,我将其回显到文件中,是的,文件中是 IP 地址,但 curl 不发送信息。 你检查第一部分了吗?手动执行相同的命令?

以上是关于将 ssh 登录发送到 Mattermost 的 bash 脚本的问题 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Linux密钥登陆

使用两个不同用户名的 SSH 登录问题

在Ubuntu 16.04 LTS安装Mattermost

利用ssh-keygen免密码登录

将证书添加到ssh-agent以获取已在代理中的密钥

通过 ssh 同步 MongoDB