SSHログインフック?


15

ユーザーがsshを使用して接続するたびにスクリプト/コマンドを実行する方法はありますか?グローバルに構成できますか(つまりユーザーがログインしたときにスクリプトを実行できますか)。

Identicaでこの質問に出くわしましたが、まだ答えがありません。

回答:


11

すべてのユーザー、または特定のユーザー向けですか?単一のユーザーの場合、.bashrcファイルに設定します。すべてのユーザーについては、pam_execをチェックしてください

ユーザーがから来ている場合、sshd次の行をに追加します/etc/pam.d/sshd。ソースに応じて他のファイル:

session optional pam_exec.so seteuid  /path/to/my/hook.sh

テストの目的で、モジュールはとして含まれているoptionalため、失敗した場合でもログインできます。あなたはそれが動作することを確認しました後、あなたは変更することができますoptionalrequired。その後、フックスクリプトの実行が成功しない限り、ログインはできません。

注:ログイン構成を変更するときは常に、バックグラウンドでバックアップシェルを開いたままにして、新しいターミナルからログインをテストします。


ありがとう、有望そうだ。もう少し詳しく説明していただけますか?私はこれに不慣れです。
プネヘヘ

session include pam_exec.so seteuid /path/to/scriptファイルに追加する必要があると思います/etc/pam.d/system-remote-login。あれは正しいですか?
プネヘヘ

どちらかsystem-remote-loginまたはsshd、ユーザが来ているかによって異なります。
グレンSolsberry

驚くばかり!情報を含むように回答を編集するのは素晴らしいことです(それを検索する他の人のために)。
プネヘヘ

グーグルの人々に注意してください。また、この行auth optional pam_exec.so /path/to/my/hook.shを入れて/etc/pam.d/common-auth、発生する認証イベントをPAMに通知することもできます。このプログラムは、プッシュ通知を送信することもできます:github.com/benjojo/PushAlotAuth
Nick

6

ローカルのものではなくsshを使用しているユーザーにのみ影響を与える別の方法があります(緊急事態でより良いかもしれません)

以下のssh manページのスニペットを参照してください。

この場合、ユーザーは通常、ファイル自体を変更できます(.bashrcに少し似ています)

 ~/.ssh/rc
         Commands in this file are executed by ssh when the user logs in, just before the user's shell (or command) is started.  See the sshd(8) manual page for more information.

これはグローバルであり、通常のユーザーは変更できません

 /etc/sshrc
         Commands in this file are executed by ssh when the user logs in, just before the user's shell (or command) is started.  See the sshd(8) manual page for more information.

2
ただし、/ etc / sshrcは、ユーザーが〜/ .ssh / rcを所有していない場合にのみ実行されるため、このユーザーはバイパスできます
-isevcik

2
@ isevcik、PermitUserRCが「yes」に設定されている場合のみ/etc/ssh/sshd_config(詳細man sshd_configを参照)
-jeremysprofile
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.