LoginSignup
19
32

More than 3 years have passed since last update.

爆速!サーバにSSHでログインがあった時にLINEで通知する

Last updated at Posted at 2017-05-17

LINEでサクっと通知が受け取れると便利ですよね。爆速で設定しましょう。

LINE Notifyのトークンを取得する

Botのように相互にやりとりをするのではなく一方的に通知をするだけであればLINE Notifyが便利です。

Messaging APIと異なり基本的にずっと無料で、設定が簡単なのも利点です。今回はこれを使うことにします。

まずはLINE Notifyのサイトでトークンを取得しましょう。

https://notify-bot.line.me/

右上のログインを押して、普通にLINEアカウントでログインします。

ログインの表記がアカウント名に変わるので、そこからマイページをクリックします。

こんな感じの画面になるので、トークンを発行するボタンを押します。

トークン名は通知の際に表示されるので、「SSH通知」や「ログイン通知」などわかりやすいものにしておきます。

送付先のメッセージルームは通知をチームで共有したいならそこを、個人的なものなら1:1で通知を受け取るを選びます。

入力が終わり、発行するボタンを押すとトークンが表示されます。

このトークンはこの画面以外では表示できず、紛失してしまうと再度発行し直しになるのでしっかりコピーしておきましょう。

以上でトークンの取得は完了です。

トークンを試す

きちんとNotifyで通知が送れるか試してみます。

以下のコマンドをターミナルで実行してみてください。

curl -X POST -H 'Authorization: Bearer <取得したLINE Notifyのトークン>' -F 'message=Notifyのテスト' https://notify-api.line.me/api/notify

無事にLINEで通知が届いていればOKです。

sshrcを設定する

あとはサーバ側でユーザがsshログインしてきた時に実行されるsshrcに通知用のスクリプトを書くだけです。

/etc/ssh/sshrcに下記のスクリプトを書いておきます。

/etc/ssh/sshrc
message='SSH Login / User: '$USER' / Client: '$SSH_CLIENT

curl -sS -X POST -H 'Authorization: Bearer <取得したLINE Notifyのトークン>' -F message="$message" https://notify-api.line.me/api/notify > /dev/null

これでサーバにログインがあった時はLINEに通知が届くようになりました。

curlでサクッと通知を送れるのでとても楽ですね。

ちなみにcurlの-sオプションはプログレスバーを表示しないようにするもの、-Sオプションはエラー時だけ表示するようにするものです。

これを設定しておかないとログインの度にcurlの進捗が出てしまってうっとうしいのでこうしてあります。

最後に

LINE Notify、いまいちマイナーですけど普段使っているチャットアプリにサクっと通知を送れるのはすごく便利ですね。

筆者はTwitterで日々技術情報もろもろの投稿をしているので良かったらフォローしてもらえると嬉しいです。

19
32
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
32