我有大约 30 个几乎相同的 CentOS 6 服务器,我需要能够使用 rsa 密钥自动推送更新的配置文件以作为 root 登录。通常这只是 rsync,但有时可能必须在服务器上运行命令,因此它也需要 ssh。由于这将作为脚本运行以更新所有 30 个服务器,因此我不想在密钥上设置密码。
我让那部分一切正常。我创建了 rsa 密钥,将它添加到了 root 的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 - …Run Code Online (Sandbox Code Playgroud)