Linux

通過 ssh 更新 RHEL 伺服器,無需 root ssh 訪問

  • September 3, 2010

我目前在哪裡,我需要將 PermitRootLogin 設置為 no 以用於 ssh。

我想通過無密碼登錄同時更新我的所有伺服器,但是如果沒有啟用 root 帳戶,有沒有辦法做到這一點?

在處理更新的伺服器上創建一個腳本,然後在 /etc/sudoers 中配置它以允許它在沒有密碼的情況下執行。

User_Alias UPDATEADMINS = user1, user2
Cmnd_Alias UPDATECMDS = /usr/local/bin/updatescript1, /usr/local/bin/updatescript2
Host_Alias UPDATEHOSTS = 10.10.1.0/24
UPDATEADMINS UPDATEHOSTS = NOPASSWD: UPDATECMDS

顯然要確保更新腳本除了 root 之外沒有任何人可以訪問。然後,您可以為更新使用者設置 SSH 密鑰並通過 SSH 遠端執行它:

$ ssh user1@10.10.2.2 sudo /usr/local/bin/updatescript
root

在該範例中,updatescript 只是簡單地回顯whoami. 如果您的腳本需要輸入,那麼了解安全隱患並正確清理該輸入非常重要。

引用自:https://serverfault.com/questions/177748