Tag: ssh

使用libssh从消息中提取SSH公钥

我在节点应用程序中使用node-libssh作为libssh的一个很好的绑定,并且可以很容易地模拟一个ssh服务器。 不过,我需要从传入的SSH会话中提取公钥。 我需要一个string化的密钥版本,以便以后在数据库查询中使用,并且它必须与您在id_rsa.pub文件中find的格式相同。 我已经能够将其缩小到需要一种方法来在libssh ssh_key到char数组之间进行转换。 它简单到使用ssh_key pubKey = ssh_message_auth_pubkey(message); 获得ssh_key版本,但是在libssh中似乎没有任何方法可以将ssh_key转换为任何可以传回到我的nodejs进程的其他格式。 我预见了这样的解决scheme: ssh_key authKey = ssh_message_auth_pubkey(m->message); const char *pubKey = ssh_key_to_char(authKey); if (pubKey) instance->Set(NanSymbol("pubKey"), v8::String::New(pubKey)); 但是,自然不是这样简单,因为没有方法ssh_key_to_char存在,我真的很感激任何指针在这里。

GitLab + GitLab CI +通过NPM从属SSH项目

目前我们使用GitLab来pipe理我们的回购和GitLab CI作为我们的CI。 我有一个项目,其中包括另一个GitLab项目作为依赖项(通过NPM)。 该项目是内部的,package.json中的URL以git+ssh://git@ ,这是我们在本地机器上使用的。 我们有SSH密钥设置。 但是,GitLab CI似乎无法使用相同的机制来安装这个依赖项目(通过npm install )。 我得到的错误是: npm install npm ERR! git clone git@my.domain.com:developers/my-repo.git Cloning into bare repository '/home/gitlab_ci_runner/.npm/_git-remotes/git-my-domain-com-developers-my-git-26043eba'… npm ERR! git clone git@my.domain.com:developers/my-repo.git npm ERR! git clone git@my.domain.com:developers/my-repo.git Host key verification failed. npm ERR! git clone git@my.domain.com:developers/my-repo.git fatal: The remote end hung up unexpectedly npm ERR! Error: Command failed: Host […]

NodeJS:可读对象stream,用于asynchronous生成数据的模式

我想用NodeJS通过SSH在服务器群集中抓取数据。 远程脚本输出JSON,然后parsing并分解成对象stream 。 我现在的问题是,我使用的面向callback的库(SSH2,MySQL)导致了一种callback模式,我发现很难与可读API规范相匹配。 如何实现_read(size)当推的数据是一堆callback后面? 我目前的实现利用了Streams也是EventEmitters的事实。 我开始构buildStream实例时填充我的数据。 当我所有的callback完成后,我发出一个事件。 然后我听取自定义事件,然后才开始向下推送数据。 // Calling code var stream = new CrawlerStream(argsForTheStream); stream.on('queue_completed', function() { stream .pipe(logger) .pipe(dbWriter) .on('end', function() { // Close db connection etc… }); }); 一个CrawlerStream的模拟将是 // Mock of the Readable stream implementation function CrawlerStream(args) { // boilerplate // array holding the data to push this.data = […]

将nodejs应用程序部署到bluehost

我在bluehost中有一个VPS,我通过SSH安装了节点和npm,并且在www.mywebsite.com:3000上运行了一个节点应用程序,所以我有两个问题: 1)我如何运行app.js,所以当它“听”www.mywebsite.com? 我的意思是当我去www.mywebsite.com我看到我的index.ejs和一切像在我的本地主机,而不是去www.mywebsite.com:3000。 2)当我在www.mywebsite.com:3000上运行节点应用程序时,如果我停止了SSH连接,它将closures,它不会永久保留,如何启动服务器一次并保持它? 就像Heroku一样,用脚本“node app.js”上传package.json,服务器将始终启动并运行。 我如何在端口3000中运行节点应用程序: 首先我运行npm init ,然后我安装了express npm install –save express app.js: var express = require("express"); var app = express(); app.get("/", function(req,res){ res.send("hi"); }); app.listen(3000, functions(){ console.log("Server Started"); });

我如何在openshift上安装全局节点模块?

我需要安装node.js模块sequelize-cli作为全局在我的sequelize ORM模式从ssh命令行使用数据库迁移。 要安装模块,我可以运行一个ssh命令: npm install -g sequelize-cli 应用程序规模如何pipe理?

当使用tunnel-ssh时,'TypeError:Object不是函数'

我正在运行stream行的NPM软件包tunnel-ssh的教程中的基本示例。 这里是代码: var tunnel = require('tunnel-ssh'); var config = { username:'root', password:'secret', host:'remote.mysql.server.com', port:3306 } tunnel(config, function(e, sshTunnel){ //Now, you should be able to connect to the tunnel via localhost:3336. }); 当然,我使用自己的数据库的凭据来运行它。 不过,我运行时总是遇到这个错误: TypeError: object is not a function 有人知道发生了什么事?

使用sftp和socks5代理node.js

我一直在寻找使用ssh2模块sftp运输日志。 然而,托pipe我们的应用程序的云服务使用旋转的IP地址范围。 所以想要整合给我们静态IP地址的socks5代理服务。 我正在使用socksjs模块来build立socks5连接,我正在连接到代理服务器,但我想我已经注入了这个套接字连接,以便sftp使用错误。 干杯, 聂 var sockConn = new SocksConnection(connTargetSettings, connProxySettings); connTargetSettings.sock = sockConn.outSocket; var conn = new ssh2.Client(); conn.on("ready", function() { conn.sftp(function(err, sftp) { if (err) throw err; // you'll be able to use sftp here sftp.readdir("/", function(err, list) { if (err) throw err; // List the directory in the console console.dir(list); // […]

npm命令通过ssh(Cygwin)发生错误

在我的MacOSX(10.11.6)上,我尝试通过ssh执行npm ls命令到Cygwin的bash(Windows10),但是发生了下面的错误。 # npm ls Error: Failed to replace env in config: ${APPDATA} at C:\Program Files\nodejs\node_modules\npm\lib\config\core.js:418:13 at RegExp.[Symbol.replace] (native) at RegExp.[Symbol.replace] (native) at String.replace (native) at envReplace (C:\Program Files\nodejs\node_modules\npm\lib\config\core.js:414:12) at parseField (C:\Program Files\nodejs\node_modules\npm\lib\config\core.js:392:7) at C:\Program Files\nodejs\node_modules\npm\lib\config\core.js:335:17 at Array.forEach (native) at Conf.add (C:\Program Files\nodejs\node_modules\npm\lib\config\core.js:334:23) at ConfigChain.addString (C:\Program Files\nodejs\node_modules\npm\node_modules\config-chain\index.js:244:8) Error: Failed to replace env in config: ${APPDATA} […]

远程nodejs服务器部署永远

我试图通过post-commit钩子在远程机器上部署节点js服务器,该钩子将在实际部署的远程机器上调用脚本。 我面对的问题是,如果我在机器上运行远程脚本工作正常,但是当我尝试通过SSH命令执行相同的脚本服务器不启动。 这是我的后提交钩子看起来像: #!/bin/bash #Connect to AWS machine and run deploy script ssh -i ~/Documents/aa-kp-inst1.pem ubuntu@<remote-ip> "sh /home/app/deploy.sh" #Done exit 0 非常简单 这就是deploy.sh的样子: #!/bin/bash #Navigate to server directory cd /home/app/personal_website/server #Stop currently running server(s) forever stop -s 0 >> forever.log #Pull latest code unset GIT_DIR git -C /home/app/personal_website/server pull –quiet #Restart server forever start -a […]

如何使用get cf ssh-code password

我们正在使用CF Diego API 2.89版本,目前我能够使用它并在运行cf ssh myApp时查看vcap和应用程序资源。 现在变得更加困难了:-) 我想部署App1 ,它将与“APP2”“交谈”并通过代码(node.js)访问它的文件系统 (如在运行ls时在命令行中提供的那样),有可能吗? 我发现这个库提供了通过代码连接到SSH的能力,但不知道我应该把东西放在主机端口等 在连接我提供了密码 ,应通过代码检索 编辑 }); }).connect({ host: 'ssh.cf.mydomain.com', port: 2222, username: 'cf:181c32e2-7096-45b6-9ae6-1df4dbd74782/0', password:'qG0Ztpu1Dh' }); 现在,当我使用cf ssh-code(要获得密码),我得到很多请求,我试图用Via邮递员模拟没有成功,有人可以协助吗? 我需要以某种方式获取密码值…如果我不提供它,我得到以下错误: SSH Error: All configured authentication methods failed 顺便说一句,让我们说,我不能使用CFnetworkingfunction,批量服务,我知道容器是短暂的….