Lolis4TheWin Asked: 2022-03-13 05:58:02 +0800 CST2022-03-13 05:58:02 +0800 CST 2022-03-13 05:58:02 +0800 CST 通过客户端 PC 的脚本关闭 ssh 服务器? 772 我有一个 Ubuntu 服务器,我想从我的笔记本电脑上关闭它。我通常必须通过 ssh 进入服务器并输入“sudo shutdown now”,但这需要一些时间。 有没有办法写一个脚本来做到这一点?如何实现 ssh 密码? ssh scripting 3 个回答 Voted CR. 2022-03-14T11:28:22+08:002022-03-14T11:28:22+08:00 这只是你可以做的一个例子。根据自己的情况修改。有很多不同的方法可以通过不同程度的安全性/安全性来实现这一点(例如,在命令行上使用带有密码的 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 访问权限(!)。 hyun.ji 2022-03-13T06:31:28+08:002022-03-13T06:31:28+08:00 我的建议是使用 sshpass 命令。但是,需要初始身份验证。 sshpass -p 'Password' ssh 192.168.xxx.xxx sudo shutdown -h now Best Answer DeviC3 2022-03-14T02:55:33+08:002022-03-14T02:55:33+08:00 将您的公钥添加到服务器,然后发送shutdown命令: ssh [email protected] 'shutdown'
这只是你可以做的一个例子。根据自己的情况修改。有很多不同的方法可以通过不同程度的安全性/安全性来实现这一点(例如,在命令行上使用带有密码的 sshpass确实不安全,而将用户 ssh 密钥添加到服务器上的 root确实非常不安全)。
这假设您的用户名是
myuser
。在服务器上作为
root
.在客户端/desktop/workstation 上
myuser
:现在在客户端关闭服务器只需执行以下操作:
即使您的客户用户帐户被黑客入侵,他们所能做的就是关闭服务器。除非您向authorized_keys 或其他东西添加另一个密钥,否则他们不会在服务器上拥有shell 访问权限,并且他们当然不会拥有root 访问权限(!)。
我的建议是使用 sshpass 命令。但是,需要初始身份验证。
将您的公钥添加到服务器,然后发送
shutdown
命令: