SSHキーを使用するたびにEメールを送信する

SSHキーを使用するたびにEメールを送信する

ほぼ同じCentOS 6サーバーが約30台あり、rsaキーを使用してrootとしてログインして、更新された設定ファイルを自動的にロールアウトできる必要があります。通常、これは単にrsyncですが、時にはサーバー上でコマンドを実行する必要があるかもしれないので、sshも必要です。これは30台のサーバーをすべて更新するスクリプトで実行されるため、キーにパスワードを設定したくありません。

その部分では、すべてが大丈夫です。 rsaキーを生成してルートのAuthorized_keysに追加することで、パスワードを入力しなくてもサーバーでsshまたはrsyncを実行できます。

単一のホスト名のキーのみを許可するようにAuthorized_keysを設定しました。これにより、この設定は比較的安全になります。しかし、まだ満足していないので、このキーを使用するたびに共有技術メールボックスに電子メールを送信するように設定したいと思います。

何度も私はこのサーバーに自分自身でログインし、root権限を要求します。これは優れており、ログインするたびにテクニカルメールボックスにスパムメールを送信したくありません。 SSHキーを使用する場合にのみ電子メールを受信したいと思います。

これはこれまで server1[30 から].example.com にある内容です。

cat /root/.ssh/authorized_keys
from="pusher.example.com",environment="SSHKEY=1" ssh-rsa AAAAB3NzaIwAAAxetcetc== root@pusher

tail -n 3 /root/.bash_profile
if [[ "${SSHKEY}" == "1" ]] ; then
echo 'Either we are getting hacked, or somebody used the SSH key on pusher to push something out to ' `hostname` ' at ' `date` | mail -s "WARNING - ROOT SSH KEY USED ON `hostname`!" [email protected]
fi

これはSSHに適しています。ルートを取得するために自分でログインしてsuを実行するとメールが届きませんが、Pusherにログインして次を実行すると、

ssh -i /root/.ssh/server1.pri server1.example.com

メールが届きました。問題はファイルをプッシュすることです。次のいずれかを実行する場合:

scp -i /root/.ssh/server1.pri /tmp/file.txt server1.example.com:/tmp/
rsync -e 'ssh -i /root/.ssh/server1.pri' /tmp/test.txt server1.example.com:/tmp/

まだメールが届いていません。

bash_profileに頼るのではなく、キーが使用されたときに電子メールを送信するように設定する方法はありますか? (またはscpまたはrsyncで使用されている場合にのみキーを実行するように制限しますか?)

ベストアンサー1

乱用する可能性があります /root/.ssh/rcあなたの目的に合わせて(man sshdを参照)mailxそこにコマンドを含めます。

おすすめ記事