在不知道密碼的情況下透過 SSH 以 root 身分登入 (sudo -s)?

在不知道密碼的情況下透過 SSH 以 root 身分登入 (sudo -s)?

我透過 SSH 連接到伺服器:

ssh user@host

然後我使用以下命令更改為 root 使用者:

sudo -s

提供我自己的密碼而不是 root 使用者密碼 - 據我所知,這是有效的,因為我位於 sudoers 文件中。

即使我沒有 root 使用者密碼,是否有辦法透過 SSH/登入並一步切換到 root 使用者?

重點是我想避免輸入密碼兩次

答案1

您有 2 種簡單的方法可以實現這一目標:

  1. 您允許使用者透過 ssh 登錄,您可以透過編輯該檔案/etc/ssh/sshd_config並將PermitRootLogin真的,這將允許 root 透過 ssh 連線。
  2. 您為 ssh 使用者建立自訂腳本以自動以 root 身分登入。這可以透過文件完成/etc/passwd,您會注意到您的用戶將類似於:

your_user:x:1001:1001:Oqhax,,,:/home/your_user:/bin/bash

要在登入時執行自訂腳本,您可以更改該/bin/bash部分並添加自己的腳本,該腳本將運行您想要的任何程式碼,這可以包括sudo -s 之類的內容,然後在自訂腳本的末尾,您也可以/bin/bash再次調用我相信,所以您的passwd看起來像:

your_user:x:1001:1001:Oqhax,,,:/home/your_user:/bin/your_script

請注意,第二個選項會影響您的 ssh 登入行為,因此要測試此選項,請確保您可以處理犯錯並有效地無法使用您的使用者登錄,因此請確保您有後門 ssh 存取權選項1 中提到的另一個使用者或root 至少可以暫時供您重新登入並修正任何錯誤,直到您的設定正常運作。

更新:跟進下面的評論,值得一提的是,這不僅會影響ssh 登錄,還會影響該用戶的任何登錄(我已經處理了這個問題,假設您的要求是該用戶始終以root 身份登錄,並且您不希望允許實際的 root 使用者透過 ssh 登入)。還值得注意的是,對於僅適用於 SSH 的更嚴格和複雜的解決方案來說,這是一個更簡單的解決方案,您的問題不會涉及太多細節。

正如評論中提到的,您也可以透過/etc/ssh/sshrc我更喜歡編輯原始 /etc/passwd 來實現相同的行為,以便將來發生的事情非常明顯,並且需要您適應後果,而這sshrc很棒但如果您碰巧忘記了如何設定係統,那麼將來的故障排除會變得更加困難,老實說,這種情況經常發生。但完全不公開 root 用戶確實是一個好習慣,這將為您在將來提供更大的靈活性,讓您可以嘗試一些事情並自訂您的 sudoer 權限。

希望這可以幫助

相關內容