ほぼ同じ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
そこにコマンドを含めます。