node.js操作远程服务器

一下演示都是在windows上远程操作linux系统

一.利用ssh进行免密码登陆

1.在windows上安装git bash客户端

2.分别在windows上和linux上执行一下命令配置ssh

ssh -keygen -t rsa -C "邮箱地址",邮箱地址可以省略不写ssh-keygen -t rsa,然后一直回车就行了。

windows下:

 centos7下:

 3.此时在windows   /c/Users/YXHY/.ssh下会生成如下两个文件:

同样在linux  /root/.ssh下也会生成 这样两个文件:

4.然后再windows和linux上分别执行一下命令:

cat id_rsa.pub>> authorized_keys

这时候就会再windows和Linux上分别生成一个authorized_keys文件,如果你想用windows上的node.js控制liux就把windows上的authorized_keys文件复制到linux的/root/.ssh/下就行了。windows控制哪个服务器,就把windows上的authorized_keys复制到哪个服务器的/root/.ssh/下。

二、使用node.js控制linux

const { readFileSync } = require('fs');

const { Client } = require('ssh2');

const conn = new Client();
conn.on('ready', () => {
  console.log('Client :: ready');

  //执行命令
 /*  conn.exec('ls', (err, stream) => {
    if (err) throw err;
    stream.on('close', (code, signal) => {
      console.log('Stream :: close :: code: ' + code + ', signal: ' + signal);
      conn.end();
    }).on('data', (data) => {
      console.log('STDOUT: ' + data);
    }).stderr.on('data', (data) => {
      console.log('STDERR: ' + data);
    });
  }); */


  //获取目录
  /* conn.sftp((err, sftp) => {
    if (err) throw err;
    sftp.readdir('/home', (err, list) => {
      if (err) throw err;
      console.dir(list);
      conn.end();
    });
  }); */

  //执行多个命令
  conn.shell((err, stream) => {
    if (err) throw err;
    stream.on('close', () => {
      console.log('Stream :: close');
      conn.end();
    }).on('data', (data) => {
      console.log('OUTPUT: ' + data);
    });
    stream.end('cd /home\nls\ntouch fff.txt\n');
  });

}).connect({
  host: '10.0.68.131',
  port: 22,
  username: 'root',
  privateKey: readFileSync('C:/Users/YXHY/.ssh/id_rsa')
});

以上测试命令中有的命令不太好使,比如top,编辑文件命令串等。路过的朋友可以研究研究感谢!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值