我正在使用simple-ssh执行驻留在远程服务器上的shell脚本。但是shell脚本在执行过程中等待用户输入。我需要通过node.js / javascript将密码和目录名作为字符串传递。
./myscript.sh
Verifying .....
Retrieving information...
SSH password:
Directory to store the output[/home]:
如何在javascript中将密码和目录名称作为字符串传递?
理想情况下,我想创建一个变量
let ssh_pwd = 'password'
let dir_path = 'path/to/dir'
并将这些作为字符串传递给ssh.exec
到目前为止,我已经尝试使用simple-ssh登录到远程服务器并执行以下命令。
cons { SSH } = require('simple-ssh');
var ssh = new SSH({
host: hostname,
user: username,
pass: passwrod});
ssh.exec('cd /path/to/script/directory && ./myscript.sh --ask-pass' , {
pty: true,
out: function(stdout) {
console.log(stdout);
},
})
.start
答案 0 :(得分:0)
注意事项:
首先有一个错字(也许是复制/粘贴问题):
cons { SSH } = require('simple-ssh'); // <-- should be const
SSH
不是软件包named export
的{{1}},而是simple-ssh
,因此您必须像这样导入:
default export
您可以使用const SSH = require('simple-ssh');
的{{1}}选项来传递要执行的目录。要将输入传递给baseDir
,可以使用config
:
./myscript.sh