Ssh

通過客戶端 PC 的腳本關閉 ssh 伺服器?

  • March 14, 2022

我有一個 Ubuntu 伺服器,我想從我的筆記型電腦上關閉它。我通常必須通過 ssh 進入伺服器並輸入“sudo shutdown now”,但這需要一些時間。

有沒有辦法寫一個腳本來做到這一點?如何實現 ssh 密碼?

將您的公鑰添加到伺服器,然後發送shutdown命令:

ssh root@192.168.1.5 'shutdown'

這只是你可以做的一個例子。根據自己的情況修改。有很多不同的方法可以通過不同程度的安全性/安全性來實現這一點(例如,在命令行上使用帶有密碼的 sshpass確實不安全,而將使用者 ssh 密鑰添加到伺服器上的 root確實非常不安全)。

這假設您的使用者名是myuser

伺服器上作為root.

echo 'myuser ALL=(ALL) NOPASSWD: /usr/sbin/shutdown now' >> /etc/sudoers.d/99-myuser-shutdown

客戶端/desktop/workstation 上myuser

ssh-keygen -t Ed25519 -N '' -f ~/.ssh/id_ed25519_shutdown

(echo -n 'command="/usr/bin/sudo /usr/sbin/shutdown now" ' &&
cat ~/.ssh/id_ed25519_shutdown.pub) |
ssh myuser@server 'mkdir -pm 700 .ssh && cat >> .ssh/authorized_keys'

現在在客戶端關閉伺服器只需執行以下操作:

ssh -i ~/.ssh/id_ed25519_shutdown myuser@server

即使您的客戶使用者帳戶被黑客入侵,他們所能做的就是關閉伺服器。除非您向authorized_keys 或其他東西添加另一個密鑰,否則他們不會在伺服器上擁有shell 訪問權限,並且他們當然不會擁有root 訪問權限(!)。

引用自:https://unix.stackexchange.com/questions/694117