将 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 脚本的问题 [重复]的主要内容,如果未能解决你的问题,请参考以下文章