https://www.npmjs.com/package/ssh2

npm install ssh2

 ssh2文件下载:

 //前台命令下发
app.get('/test/fileDownload', function (req, res) {
var downloadPath = req.query.downloadPath;
console.log(downloadPath); var conn = new Client();
conn.on('ready', function() {
console.log('Client :: ready');
conn.sftp(function(err, sftp) {
if (err) throw err;
//sftp.fastPut('/home/admin/foo/expdat.log','/home/book/foo/expdat.log', function(err, list) {
sftp.fastGet('/home/book/foo/expdat.log','/home/admin/foo/expdat.log' ,function(err, result) {
if (err) throw err;
//console.log('----------GET BEGIN!-------------');
res.download(downloadPath);
//console.log('----------GET END!-------------');
conn.end();
});
});
}).connect({
host: '192.168.0.111',
port: 22,
username: 'admin',
password: 'admin'
});
});

app.get('/test/fileDownload', function (req, res)

调用:<a href="fileDownload?downloadPath=/home/admin/foo/expdat.log" ><input type='button' value='文件下载' ></a>

ssh2shell命令:

 var Client = require('ssh2').Client;

 var conn = new Client();
conn.on('ready', function() {
conn.exec('/home/admin/foo/me.sh', function(err, stream) {
if (err) throw err; stream.on('close', function(code, signal) {
conn.end();
}).on('data', function(data) {
console.log('STDOUT: ' + data);
}).stderr.on('data', function(data) {
console.log('STDERR: ' + data);
});
});
}).connect({
host: '10.20.16.73',
port: 22,
username: 'prodis',
password: 'pro'
//privateKey: require('fs').readFileSync('/home/admin/.ssh/id_dsa')
});

SHELL_CMD

备注:

http://blog.sina.com.cn/s/blog_680374c30101iznc.html

 在A上执行keygen,转换后cp到B上,那么在B上ssh A时不需要口令
§6.4 使用Public Key (OpenSSH) 不用密码登陆.
步骤如下:
l 创建key
. $ mkdir -p ~/.ssh If it doesn't already exist
. $ chmod ~/.ssh
. $ cd ~/.ssh
$ ssh-keygen -t dsa
l 拷贝key到服务器端
$ scp -p id_dsa.pub remoteuser@remotehost:
Password: ********
l 登陆到服务器端安装公钥
$ ssh -l remoteuser remotehost
Password: ******** remotehost$ mkdir -p ~/.ssh If it doesn't already exist
remotehost$ chmod ~/.ssh
remotehost$ cat id_dsa.pub >> ~/.ssh/authorized_keys (Appending)
remotehost$ chmod ~/.ssh/authorized_keys
remotehost$ mv id_dsa.pub ~/.ssh 可选步骤,该文件甚至可以删除掉
remotehost$ logout
l 用public-key登陆
$ ssh -l remoteuser remotehost
Enter passphrase for key '/home/smith/.ssh/id_dsa': ******** 公钥一般存放在~/.ssh/authorized_keys, 老的OpenSSH版本可能存放在~/.ssh/authorized_keys2. Public-key 认证机制比密码要安全, 因为密码不在网络上传输. 而且可以是用加密的方式存储的,如果没有别人没有passphrase,拿到密钥也没有用.为此一定要设置passphrase 如果以上不步骤不能实现不输密码登陆,请检查:
/etc/ssh/sshd_config:
PubkeyAuthentication yes If no, change it and restart sshd
可以用ssh –v来显示详细的登陆过程. SSH- key文件格式:
SSH的两种主要实现方式: OpenSSH and SSH Secure Shell ("SSH2")
OpenSSH 的如下:
ssh-dss A9AAB3NzaC1iGMqHpSCEliaouBun8FF9t8p...
or:
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEA3DIqRox...
SSH Secure Shell的如下:
---- BEGIN SSH2 PUBLIC KEY ----
AAAAB3NzaC1kc3MAAACBAM4a2KKBE6zhPBgRx4q6Dbjxo5hXNKNWYIGkX/W/k5PqcCH0J6 ...
---- END SSH2 PUBLIC KEY ---- SSH Secure Shell的安装方式也不同,目录在~/.ssh2 要在, ~/.ssh2/authorization中用如下方式提及: Key public_key_filename. 私钥也需要在~/.ssh2/identification用如下方式引用:
IdKey private_key_filename

使用Public Key (OpenSSH) 不用密码登陆

 AIX6.1默认是没有安装SSH服务的,要使用SSH连接AIX服务器,必须手动安装OpenSSH软件。

 .在IBM官方网站下载Openssl和OPenSSH软件(可下载本文附件)。
.将下载的软件上传至AIX系统/tmp目录下。
.解压软件 bash-3.2# uncompress openssl-fips-12.9.8.1801.tar
bash-3.2# tar xvf openssl-fips-12.9.8.1801.tar
x openssl-fips-12.9.8.1801
x openssl-fips-12.9.8.1801/openssl.base, bytes, media blocks.
x openssl-fips-12.9.8.1801/openssl.license, bytes, media blocks.
x openssl-fips-12.9.8.1801/openssl.man.en_US, bytes, media blocks. bash-3.2# uncompress OpenSSH_5.8.0..tar.Z
bash-3.2# cd OpenSSH/
bash-3.2# tar xvf OpenSSH_5.8.0..tar OS:AIX 5.3.
-------------------------------------安装openssl----------------------------------
.下载openssl
https://www14.software.ibm.com/webapp/iwm/web/reg/download.do?source=aixbp&S_PKG=openssl&lang=en_US#
选择OpenSSL Install images v0.9.8. ( OpenSSL 0.9.8r ) for AIX 5.3 , AIX 6.1 & 7.0 .解压缩安装包
[hxl/root]#ls - openssl-0.9.8.1802.tar.Z
openssl-0.9.8.1802.tar.Z
[hxl/root]#uncompress openssl-0.9.8.1802.tar.Z .查看tar的内容
[hxl/root]#tar -vtf openssl-0.9.8.1802.tar
drwxr-xr-x Jun :: openssl-0.9.8.1802/
-rw-r----- Jun :: openssl-0.9.8.1802/openssl.base
-rw-r----- Jun :: openssl-0.9.8.1802/openssl.license
-rw-r----- Jun :: openssl-0.9.8.1802/openssl.man.en_US
[hxl/root]#mkdir opensshl
[hxl/root]#mv openssl-0.9.8.1802.tar ./openssh1
[hxl/root]#tar -xvf openssl-0.9.8.1802.tar .安装
smitty install指定软件的目录,选择安装:openssl.base
ACCEPT new license agreements? 选择YES ---------------------------安装openssh-----------------------------------
.下载openssh,下载地址:http://sourceforge.net/projects/openssh-aix/files/
[hxl/root]#ls - openssh_5.2p1_aix53.tar.z
openssh_5.2p1_aix53.tar.z .修改文件名,将后缀小写的z改为大写,然后解压缩
[hxl/root]#mv openssh_5.2p1_aix53.tar.z openssh_5.2p1_aix53.tar.Z
[hxl/root]#uncompress openssh_5.2p1_aix53.tar.Z .查看tar文件内容
[hxl/root]#tar -vtf openssh_5.2p1_aix53.tar 解压到当前目录
[hxl/root]#mv openssh_5.2p1_aix53.tar ./openssh
[hxl/root]#tar -xvf openssh_5.2p1_aix53.tar .安装
smitty install指定软件软件存放的目录,选择openssh.base
ACCEPT new license agreements? 选择YES ------------------------------------运行ssh服务--------------------------
.运行ssh服务
默认安装好后系统自动启用ssh服务:
[hxl/root]#lssrc -a | grep ssh
sshd ssh active 启动sshd服务
[hxl/root]#startsrc -s sshd 停止sshd服务
[hxl/root]#stopsrc -s sshd 这样就可以通过putty或则ssh登陆了 .首先安装Openssl,再安装OpenSSH,安装先后顺序不可颠倒 bash-3.2# cd openssl-fips-12.9.8.1801
bash-3.2# smitty install 顺序选择Install and Update Software、Install Software,
INPUT device / directory for software [.] 输入当前目录.
SOFTWARE to install [_all_latest] 按F4、然后ESC+7选择列出行
"ACCEPT new license agreements?" [yes]
回车,执行安装
Command:OK 表示安装完成。
OpenSSH安装方法同上。 .安装完成后SSH服务会自动启动,确认: bash-3.2# lssrc -s sshd
Subsystem Group PID Status
sshd ssh active .启动和停止服务: bash-3.2# stopsrc -s sshd
- The sshd Subsystem was requested to stop.
bash-3.2# lssrc -s sshd
Subsystem Group PID Status
sshd ssh inoperative bash-3.2# startsrc -s sshd
- The sshd Subsystem has been started. Subsystem PID is .
bash-3.2# lssrc -s sshd
Subsystem Group PID Status
sshd ssh active

AIX开启SSH

nodejs ssh2的更多相关文章

  1. 从Java的角度理解前端框架,nodejs,reactjs,angularjs,requirejs,seajs

    [前端神秘的面纱] 对后端开发来说,前端是神秘的, 眼花缭乱的技术,繁多的框架, 如果你还停留在前端等于只用jquery做开发,那么你out了, 本文从Java的角度简述下目前前端流行的一些框架. 水 ...

  2. 【nodejs原理&源码赏析(9)】用node-ssh实现轻量级自动化部署

    目录 一. 需求描述 二. 预备知识 IP+端口访问 域名访问 三. Nodejs应用的手动部署 四. 基于nodejs的自动部署 4.1 package.json中的scripts 4.2 自动化发 ...

  3. 【nodejs原理&源码赏析(9)】用node-ssh实现轻量级自动化部署

    [摘要] node脚本实现轻量级自动化部署 示例代码托管在:http://www.github.com/dashnowords/blogs 一. 需求描述 前端工程出包后实现简易的自动化部署. 二. ...

  4. nodejs和vuejs的关系

    转自:https://blog.csdn.net/myKurt/article/details/79914078 nodejs类比Java中:JVM 详述: 就前端来说nodejs具有划时代的意义, ...

  5. NodeJs之OS

    OS Node.js提供了一些基本的底层操作系统的模块OS. API var os = require('os'); console.log('[arch] 操作系统CPU架构'+os.arch()) ...

  6. NodeJs之Path

    Path模块 NodeJs提供的Path模块,使得我们可以对文件路径进行简单的操作. API var path = require('path'); var path_str = '\\Users\\ ...

  7. NodeJs之调试

    关于调试 当我们只专注于前端的时候,我们习惯性F12,这会给我们带来安全与舒心的感觉. 但是当我们使用NodeJs来开发后台的时候,我想噩梦来了. 但是也别泰国担心,NodeJs的调试是很不方便!这是 ...

  8. NodeJs在Linux下使用的各种问题

    环境:ubuntu16.04 ubuntu中安装NodeJs 通过apt-get命令安装后发现只能使用nodejs,而没有node命令 如果想避免这种情况请看下面连接的这种安装方式: 拓展见:Linu ...

  9. NodeJs之child_process

    一.child_process child_process是NodeJs的重要模块.帮助我们创建多进程任务,更好的利用了计算机的多核性能. 当然也支持线程间的通信. 二.child_process的几 ...

随机推荐

  1. Linux 查看物理内存

    free -k free -m free -b man free cat /proc/meminfo

  2. solr--搜索参数随笔

    1.默认搜索域.查询域的关系 qf字段的配置:query fields,指定solr从哪些field中搜索 在solrj中设置如下: params.setParam("qf", & ...

  3. 沈逸老师PHP魔鬼特训笔记(6)--巫术与骨架

    PHP最牛逼的特性之一除了懒人函数,还有一些魔法函数. 首先我们来认识下__tostring,通过一个巫术方法,我们吧实例转化过后的类,直接当字符串输出.结合我们前面所做的功能,我们在类里面加上这个函 ...

  4. Excel两行交换及两列交换,快速互换相邻表格数据的方法

    经常使用办公软件的人可能有遇到过需要将Excel相邻两行数据相互交换的情况,需要怎么弄才最方便呢?您还是像大家通常所做的那样先在Excel文件相应位置插入一个新的空白行然后在复制粘贴数据然后删除原来那 ...

  5. UIPickerView 简单操作和实际应用

    1.UIPickerView 选择指示器控件 //选择器的初始化 UIPickerView * pickerView = [[UIPickerView alloc] initWithFrame:CGR ...

  6. XAMPP Apache服务器解析php页面汉字乱码的解决

    XAMPP 的Apache服务器默认未设置缺省字体,导致php网页中的汉字总是显示为乱码,每次要在浏览器中选择字符编码为“简体中文”才可正常显示. 实际上可以修改php.ini文件,找到“;defau ...

  7. CSS3实战手册(第3版)(影印版)

    <CSS3实战手册(第3版)(影印版)> 基本信息 原书名:CSS3: The Missing Manual, 3E 作者: David Sawyer McFarland 出版社:东南大学 ...

  8. oracle冷备份

    windows环境下Oracle数据库冷备份和恢复 1.点击开始菜单的“运行”,输入sqlplus/nolog 2.在弹出的命令行窗口以sysdba身份登陆,要输入:系统用户名/登陆密码@数据库实例名 ...

  9. React Native(ios)项目中logo,启动屏设置

    由于logo和启动屏尺寸多,react native(ios)中没有命令可以自动生成各种的尺寸,所以可以使用以下办法:在ionic项目中生成(使用命令:ionic resources)后,再粘贴到re ...

  10. 深入浅出ExtJS 第三章 表格控件

    3.1 表格的特性简介 >.Ext中的表格功能:包括排序/缓存/拖动/隐藏某一列/自动显示行号/列汇总/单元格编辑等实用功能; >.表格由类Ext.grid.GridPanel定义,继承自 ...