有没有办法像这样运行 tmux cmdtmux 杀死服务器,tmuxinator附加通过nodejs等。我在网上搜索过,但找不到任何有用的东西可以帮助我消除错误。
我正在尝试shelljsnpm 模块但它不起作用。
我收到此错误:-
Pseudo-terminal will not be allocated because stdin is not a terminal.
Permission denied (publickey).
当使用这些代码行与 nodejs 运行 tmux cmd 时:-
shell.exec('ssh -t myremotemachineaddress tmux kill-server');
shell.exec('ssh -t myremotemachineaddress tmuxinator start rails_servers');
这里,shell是一个变量,用于shelljsnpm 模块。
答案1
首先,您似乎没有在远程主机上设置公钥身份验证。否则,您将无法在没有密码的情况下登录。您必须在计算机上生成密钥对,并将公钥添加到~/.ssh/authorized_keys
用户目录中的文件中。
要生成密钥对,请使用ssh_keygen
(当要求输入密码时按 Enter 两次将创建一个没有密码的密钥)。
ssh-keygen -t rsa -b 8192 -f ~/.ssh/id_yourmachine
ssh-add ~/.ssh/id_yourmachine
~/.ssh/id_yourmachine.pub
将是公钥,您应该将其添加到~/.ssh/authorized_keys
远程主机上的文件中。然后您可以使用 登录ssh user@yourmachine
。
其次,我不确定您为什么使用该-t
选项,但它可能不需要,并且似乎导致了第一个警告。
除此之外,node
还有一个内置的方式执行命令/启动进程。