Ssh

從監獄中關閉主機

  • August 31, 2015

我在 NAS4FREE 上使用 Finch-Freebsd 創建了一個帶有 ssh 的監獄,並添加了一個本地非超級使用者來通過 ssh 訪問該監獄。

我希望能夠授予此使用者有限的 shell 訪問權限,專門用於關閉監獄,然後開始關閉監獄所在的伺服器

我怎樣才能給上述使用者有限的 shell 命令權限來啟動關機命令?

到目前為止,在嘗試發起sh /etc/rc.shutdown

我得到以下輸出

eval:無法打開 /var/run/cron.pid:權限被拒絕停止 sshd。kill:12060:不允許操作停止 lighttpd。kill:12001:不允許操作評估:無法打開 /var/db/mysql/RemandYard.pid:權限被拒絕 pututxline:權限被拒絕終止

正如 Kassandry 所說,你不能通過監獄本身的命令來做到這一點。

但是,您可以做的是創建一個單獨的使用者(以後我將closer在主機系統上呼叫該使用者。應該阻止該使用者,以便它只能使用 SSH 密鑰登錄。

您被監禁的使用者應該擁有私鑰和密鑰的密碼。

在主機端,您授予closer帳戶 sudo 權限:

closer   localhost=NOPASSWD:/usr/sbin/shutdown

在主機端,將 SSH 密鑰的公共部分放入/home/closer/.ssh/authorized_keys. 編輯密鑰,使其以

command="sudo /usr/sbin/shutdown",from="1.2.3.4" 

然後是實際的密鑰,都在同一行。(當然,固定 IP 地址,使其與監獄相匹配。)使authorized_key文件和目錄對使用者不可寫。

當被監禁系統上的使用者現在使用該密鑰通過 SSH 連接到主機時,它將立即觸發關機。使用者將無法使用密鑰執行任何其他操作 - 任何時候他們使用它登錄時,它都會簡單地執行命令。密鑰只能在這個監獄中使用,因此如果他們以某種方式獲得密鑰,您就不會冒險讓全世界都有權關閉您的伺服器。

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