SSHで接続されたときにSlackへ通知するスクリプトを sshrc に仕込んだら、SFTPで以下のメッセージで怒られて接続に失敗しました。
Received message too long 1869283328
Ensure the remote shell produces no output for non-interactive sessions.
修正前
コマンドの実行結果を標準出力していました。
/etc/ssh/sshrc
curl -X POST --data-urlencode 'payload={"channel": "'"$SLACK_CHANNEL"'", "username": "'"$SLACK_USERNAME"'", "text": "'"${SLACK_MESSAGE}"'", "icon_emoji": "'":${SLACK_ICON_EMOJI}:"'"}' ${SLACK_WEBHOOK_URL}
修正後
コマンドの実行結果を /dev/null
へ強引にリダイレクトさせました。具体的には、コマンドの末尾に &> /dev/null
を追加しただけです。
/etc/ssh/sshrc
curl -X POST --data-urlencode 'payload={"channel": "'"$SLACK_CHANNEL"'", "username": "'"$SLACK_USERNAME"'", "text": "'"${SLACK_MESSAGE}"'", "icon_emoji": "'":${SLACK_ICON_EMOJI}:"'"}' ${SLACK_WEBHOOK_URL} &> /dev/null