使用SSH命令重启Linux

时间:2018-08-07 15:42:14

标签: node.js ssh

我正在使用带有nodeJS和expressJS的simple-ssh,并且尝试通过ssh命令重新引导远程linux计算机,这是我的代码(它不起作用,但是如果我尝试执行一个ls命令,可以。)请帮忙!

ssh.exec('shutdown -r now', {
out: function(stdout) {
     console.log(stdout)}}).start();

3 个答案:

答案 0 :(得分:0)

我还没有尝试过ssh.exec,但是除非您以root用户身份登录,否则只能使用sudo调用shutdown。

答案 1 :(得分:0)

虽然我确定执行命令的用户具有足够的特权来运行ls,但他们是否有足够的reboot?检查日志!

编辑:帖子经过了修改,以在下面包含我的答案。在OP确认他们有足够的烫发后,我在对此答案的评论中提供了它:

给出的答复是您的用户具有sudo特权,请注意sudo的默认行为是提示输入密码。

要使用visudo编辑器(例如sudo visudo)允许给定的用户名在没有密码提示的情况下运行reboot命令,请尝试添加以下内容行到您的配置:

username ALL = (root) NOPASSWD: /path/to/reboot 
Defaults!/path/to/reboot !requiretty 

您的用户名将不再提示,并且您对ssh.exec()的呼叫应可以正常工作。对于您需要以其他用户/ root身份运行的任何其他命令,您可以遵循类似的模式。

如果需要确定特定系统的 / path / to / reboot ,请使用以下命令:sudo which reboot

答案 2 :(得分:0)

systemctl reboot -i

是所有linux机器重启条件的命令。