我正在尝试一些 Slack 集成,以便每次 SSH 尝试都会发送到 Slack 频道
下面的脚本非常适合 SSH 尝试,但问题是当我对服务器执行 SCP 时,终端会话挂起。
有没有办法在脚本或 SSH 配置中允许这样做?有没有办法在 SSH 或 SCP 之间进行选择?
SSH 更改为/etc/ssh/sshd_config
ForceCommand /home/ubuntu/ssh-wrapper
会话挂起
% Total % Received % Xferd Average Speed Time Time Time
Current
Dload Upload Total Spent Left Speed
100 97 100 2 100 95 4 192 --:--:-- --:--:-- --:--:-- 231
脚本
#! /bin/bash
# Find the session's remote IP address
ip=`echo $SSH_CONNECTION | cut -d " " -f 1`
# Tell Slack we logged in!
curl -XPOST 'webhook goes here' -d '
{"text":"We have contact - Server '"$HOSTNAME"' via ssh from '"$ip"'",
"username":"SSH Monitor"}'
# Allow the session to run:
${SSH_ORIGINAL_COMMAND:-bash}
# Tell Slack we're logging out!
curl -XPOST 'webhook goes here' -d '
{"text":"Somebody disconnected on '"$HOSTNAME"' from '"$ip"'",
"username":"SSH Monitor"}'
答案1
在下面添加了似乎有效的东西:-)
if echo $SSH_ORIGINAL_COMMAND|egrep -e "^scp " > /dev/null 2>&1; then
$SSH_ORIGINAL_COMMAND
fi