Ssh
通過客戶端 PC 的腳本關閉 ssh 伺服器?
我有一個 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 訪問權限(!)。