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. org-reveal

    环境: Debian 8 Emacs 24.4 org-reveal是在emacs org-mode中使用reveal.js的一个插件. emacs 24.4自带的org版本是8.2.10,这个版本似 ...

  2. iOS webView与js交互在文本空格上输入文字

    项目要求:webview加载html网址,内容为填空题型文本,需要在横线上添加答案,并点击提交按钮后再将答案进行回显 正常加载的效果图片: 这个是用js交互后的效果图: 点击空格,输入想输入的答案,如 ...

  3. 重构21-Collapse Hierarchy(去掉层级)

    我们通过提取子类来下放职责.,当我们意识到不再需要某个子类时,可以使用Collapse Hierarchy重构.如果某个子类的属性(以及其他成员)可以被合并到基类中,这时再保留这个子类已经没有任何意义 ...

  4. Http StatuCode说明

    HTTP 200 - 文件被正常的访问 HTTP 302 - 临时重定向 HTTP 400 - 请求无效 HTTP 401.1 - 未授权:登录失败 HTTP 401.2 - 未授权:服务器配置问题导 ...

  5. maven的update project是什么意思

    一个是更新依赖,然后是clean projects,重新编译

  6. CF 322E - Ciel the Commander 树的点分治

    树链剖分可以看成是树的边分治,什么是点分治呢? CF322E - Ciel the Commander 题目:给出一棵树,对于每个节点有一个等级(A-Z,A最高),如果两个不同的节点有相同等级的父节点 ...

  7. HTML5+开发移动app-mui开发示例

    mui 官网:http://dcloudio.github.io/mui/ 说明:希望你可以把官网内容通读一遍,这是以后开发的基础 开始 新建项目 在首页点击新建移动App,如下: 或者在项目管理器内 ...

  8. 移动端开发,几个你可能不知道的CSS单位属性。

    1. rem "em" 单位是我们开发中比较常用到的,它表示以当前元素的父元素的单位大小为基准来设置当前元素的大小:“rem” 中的 “r” 代表 “root”,它表示以根(即“h ...

  9. JavaScript原型(链)学习笔记

    javascript是基于原型的一门脚本语言,那究竟原型是什么? 本文将从以下几个方面重点阐述原型 构造函数是什么? 构造函数和我们常见的Array String有什么关系? 原型的使用? __pro ...

  10. DNS服务器搭建

    注意正式运行的dns服务器主dns设置 中没有启用转发器,所以部分网页如taobao解析时可能很慢.开启转发器即可转发器地址指向电信dns. [root@master ~]# lsb_release ...