Node.js 使用SSH命令重新启动Linux
我正在将简单ssh与nodeJS和expressJS一起使用,我正在尝试使用ssh命令重新启动远程linux机器,这是我的代码(它不工作,但如果我尝试执行一个可以工作的ls命令),请帮助Node.js 使用SSH命令重新启动Linux,node.js,ssh,Node.js,Ssh,我正在将简单ssh与nodeJS和expressJS一起使用,我正在尝试使用ssh命令重新启动远程linux机器,这是我的代码(它不工作,但如果我尝试执行一个可以工作的ls命令),请帮助 ssh.exec('shutdown -r now', { out: function(stdout) { console.log(stdout)}}).start(); 我没有尝试ssh.exec,但除非您以root用户身份登录,否则只能使用sudo调用shutdown。虽然我确定执行命令的用户有
ssh.exec('shutdown -r now', {
out: function(stdout) {
console.log(stdout)}}).start();
我没有尝试ssh.exec,但除非您以root用户身份登录,否则只能使用sudo调用shutdown。虽然我确定执行命令的用户有足够的权限运行
ls
,但他们是否有足够的重新启动
?检查日志
编辑:修改后的帖子将我的答案包含在下面。在OP确认他们有足够的烫发次数后,我在对此答案的评论中提供了这一信息:
如果您的回复是您的用户具有sudo
权限,请注意sudo
的默认行为是提示输入密码
要使用visudo
编辑器(例如sudo visudo
)允许给定用户名在没有密码提示的情况下运行reboot
命令,请尝试在配置中添加以下行:
username ALL = (root) NOPASSWD: /path/to/reboot
Defaults!/path/to/reboot !requiretty
不再提示您的用户名,您对ssh.exec()
的调用应该可以正常工作。对于需要作为另一个用户/根用户运行的任何其他命令,您可以遵循类似的模式
如果需要确定特定系统的/path/to/reboot,请使用以下命令:
sudo which reboot
是的,我有权限您收到了哪些错误消息?如果用户具有sudo权限,则默认行为是提示输入密码。使用visudo
(例如sudo-visudo
)并允许给定用户名运行reboot
命令,请尝试以下设置:username-ALL=(root)NOPASSWD:/path/to/reboot
,后跟另一行默认值/路径/到/重新启动!requirety
如果需要确定/path/to/reboot
请使用命令:sudo哪个重新启动
这有帮助吗?这也应该有所帮助。你也试过记录stderr了吗?也许这暗示了问题所在。