{"_id":"strong-tunnel","_rev":"246-49fa2ffadd306ce8cedfa1ce1196132f","name":"strong-tunnel","dist-tags":{"latest":"1.1.6"},"versions":{"1.0.0":{"name":"strong-tunnel","version":"1.0.0","keywords":["ssh2","tunnel","proxy","tcp","socket","url"],"author":{"name":"StrongLoop","email":"callback@strongloop.com"},"license":"Artistic 2.0","_id":"strong-tunnel@1.0.0","maintainers":[{"name":"rmg","email":"r.m.graham@gmail.com"}],"homepage":"https://github.com/strongloop/strong-tunnel","bugs":{"url":"https://github.com/strongloop/strong-tunnel/issues"},"dist":{"shasum":"50355bb6460a6b0887d2e68b3e261177290bffdd","tarball":"https://registry.npmjs.org/strong-tunnel/-/strong-tunnel-1.0.0.tgz","integrity":"sha512-qF2B0jWICkdlj5nKcQT0UmQNmtPsMlvpgnxZmZapB0ZVj6svrF5AqI86cXLN9bWMasQ7ZnoLopsamcod6xAxwg==","signatures":[{"sig":"MEUCIQC6NINim7RAOoexibOG1gPw6VxTTh/s/W7LZTYTJ5AMWgIgXwzNo9jqd4DcIfP52zgHKMZkiKM/IAn31XvBQy8hLWo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"50355bb6460a6b0887d2e68b3e261177290bffdd","gitHead":"f16e1ee4f15b6a2db30e4f1788b9dd0f54f79bbc","scripts":{"test":"tap test/test-*.js"},"_npmUser":{"name":"rmg","email":"r.m.graham@gmail.com"},"repository":{"url":"git@github.com:strongloop/strong-tunnel.git","type":"git"},"_npmVersion":"2.5.0","description":"Semi-transparent wrapper for arbitrary network connections over ssh2","directories":{},"_nodeVersion":"0.10.36","dependencies":{"ssh2":"^0.4.4"},"devDependencies":{"tap":"^0.6.0"}},"1.1.0":{"name":"strong-tunnel","version":"1.1.0","keywords":["ssh2","tunnel","proxy","tcp","socket","url"],"author":{"name":"StrongLoop","email":"callback@strongloop.com"},"license":"Artistic 2.0","_id":"strong-tunnel@1.1.0","maintainers":[{"name":"rmg","email":"r.m.graham@gmail.com"},{"name":"octet","email":"sam@strongloop.com"},{"name":"strongloop","email":"callback@strongloop.com"},{"name":"kraman","email":"kraman@strongloop.com"}],"homepage":"https://github.com/strongloop/strong-tunnel","bugs":{"url":"https://github.com/strongloop/strong-tunnel/issues"},"dist":{"shasum":"76f32da5fe05ba3bbb636c2f9dffa8fdd7cdbb79","tarball":"https://registry.npmjs.org/strong-tunnel/-/strong-tunnel-1.1.0.tgz","integrity":"sha512-HxJ2vc/iME/GKwJRecQl/X2hLc5Dm8bdqFwi1xlLOhuzXEaTJp8N2dZXGAvHf6AyypCSgKc0/Fwc1da9iH2ohw==","signatures":[{"sig":"MEYCIQCEGBZcf2ev6lR3P0OtGAm4XgXUZA5aNNtY7Kx8+TjcewIhAPVvqrQjX6IcZg8mjlQlfsxbJUQ9xqpEa5OEW4VE+T3B","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"76f32da5fe05ba3bbb636c2f9dffa8fdd7cdbb79","gitHead":"9407c5d60ef5d92820c4271829f7c0726f5999f1","scripts":{"test":"tap test/test-*.js"},"_npmUser":{"name":"rmg","email":"r.m.graham@gmail.com"},"repository":{"url":"git@github.com:strongloop/strong-tunnel.git","type":"git"},"_npmVersion":"2.5.0","description":"Semi-transparent wrapper for arbitrary network connections over ssh2","directories":{},"_nodeVersion":"0.10.36","dependencies":{"ssh2":"^0.4.4"},"devDependencies":{"tap":"^0.6.0","buffer-equal-constant-time":"^1.0.1"}},"1.1.1":{"name":"strong-tunnel","version":"1.1.1","keywords":["ssh2","tunnel","proxy","tcp","socket","url"],"author":{"name":"StrongLoop","email":"callback@strongloop.com"},"license":"Artistic 2.0","_id":"strong-tunnel@1.1.1","maintainers":[{"name":"rmg","email":"r.m.graham@gmail.com"},{"name":"octet","email":"sam@strongloop.com"},{"name":"strongloop","email":"callback@strongloop.com"},{"name":"kraman","email":"kraman@strongloop.com"}],"homepage":"https://github.com/strongloop/strong-tunnel","bugs":{"url":"https://github.com/strongloop/strong-tunnel/issues"},"dist":{"shasum":"cc59b72d862139f09cf30b99ab927f45979f6eeb","tarball":"https://registry.npmjs.org/strong-tunnel/-/strong-tunnel-1.1.1.tgz","integrity":"sha512-cmrqS2uzQLG9xcjmK7e3d1i/qhmVFegha5J8UqfeYkB5Z4Hln4WTx82ia+/IbiZUmPPlqOmGGnXpyWjGCW6heg==","signatures":[{"sig":"MEUCIQDA17lkjKKGQgKL2ZMQjQHQDDzb0JH7jAUDST3doPENnwIgDALKOOjgaAG7yf7sBgbbpHh9U202gM5A+RqYS5NqJnI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"cc59b72d862139f09cf30b99ab927f45979f6eeb","gitHead":"47bd1812e1ce9cb67a6b1f936e55c2399ca85d9a","scripts":{"test":"tap test/test-*.js"},"_npmUser":{"name":"rmg","email":"r.m.graham@gmail.com"},"repository":{"url":"git@github.com:strongloop/strong-tunnel.git","type":"git"},"_npmVersion":"2.5.0","description":"Semi-transparent wrapper for arbitrary network connections over ssh2","directories":{},"_nodeVersion":"0.10.36","dependencies":{"ssh2":"^0.4.4"},"devDependencies":{"tap":"^0.6.0","buffer-equal-constant-time":"^1.0.1"}},"1.1.2":{"name":"strong-tunnel","version":"1.1.2","keywords":["ssh2","tunnel","proxy","tcp","socket","url"],"author":{"name":"StrongLoop","email":"callback@strongloop.com"},"license":"Artistic 2.0","_id":"strong-tunnel@1.1.2","maintainers":[{"name":"rmg","email":"r.m.graham@gmail.com"},{"name":"octet","email":"sam@strongloop.com"},{"name":"strongloop","email":"callback@strongloop.com"},{"name":"kraman","email":"kraman@strongloop.com"}],"homepage":"https://github.com/strongloop/strong-tunnel","bugs":{"url":"https://github.com/strongloop/strong-tunnel/issues"},"dist":{"shasum":"e753664a8497cca1e3e58adf1e7c9e8cf17d2400","tarball":"https://registry.npmjs.org/strong-tunnel/-/strong-tunnel-1.1.2.tgz","integrity":"sha512-8fsb6NtS0sItiYlwz4VhdONL6jTqxYJkkKS6l3YmgjhJ0eqQcMMChDyfb2PXzbAOrhNa8ER+OJVS/5XWtVnHow==","signatures":[{"sig":"MEYCIQCwt7j1kP/O8/L6kBhy5ALgpVOLSRvnjHoLNMMZpBTYQAIhAK/3erhJSddNZbflAz08h4TBOTdpY3XwIA5xcVUmFdvB","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"e753664a8497cca1e3e58adf1e7c9e8cf17d2400","gitHead":"b9ccc13b7a93330f703ad2764246974ad7bbb7f4","scripts":{"lint":"eslint . && jscs .","test":"tap test/test-*.js","pretest":"eslint . && jscs ."},"_npmUser":{"name":"octet","email":"sam@strongloop.com"},"repository":{"url":"git+ssh://git@github.com/strongloop/strong-tunnel.git","type":"git"},"_npmVersion":"2.10.1","description":"Semi-transparent wrapper for arbitrary network connections over ssh2","directories":{},"_nodeVersion":"2.1.0","dependencies":{"ssh2":"^0.4.4"},"devDependencies":{"tap":"^0.6.0","jscs":"^1.11.3","eslint":"^0.18.0","buffer-equal-constant-time":"^1.0.1"}},"1.1.3":{"name":"strong-tunnel","version":"1.1.3","keywords":["ssh2","tunnel","proxy","tcp","socket","url"],"author":{"name":"StrongLoop","email":"callback@strongloop.com"},"license":"Artistic 2.0","_id":"strong-tunnel@1.1.3","maintainers":[{"name":"rmg","email":"r.m.graham@gmail.com"},{"name":"octet","email":"sam@strongloop.com"},{"name":"strongloop","email":"callback@strongloop.com"},{"name":"kraman","email":"kraman@strongloop.com"}],"homepage":"https://github.com/strongloop/strong-tunnel","bugs":{"url":"https://github.com/strongloop/strong-tunnel/issues"},"dist":{"shasum":"1c84e40d6056f9ae2e1201824393bbcfd6d24dae","tarball":"https://registry.npmjs.org/strong-tunnel/-/strong-tunnel-1.1.3.tgz","integrity":"sha512-7UV/3A4yyKmQuODZj2xEsCu+4c6FqL4LCRWGw6YzPecxaMihQCsljSwgHN7DjV32Hl6LcPC8O+6ox0olLwCMSg==","signatures":[{"sig":"MEUCICTJ52akYD+Rs4Xqxq0FgGYqCisMfCYaoZw4obBYlLBfAiEAqbHM9k6TUp8fiI4Bb8qWOkm0hn/kllhq/AnT/Ja459o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"1c84e40d6056f9ae2e1201824393bbcfd6d24dae","gitHead":"83ecc96cdb95669f2e81d48cd5b8326027a848fb","scripts":{"lint":"eslint . && jscs .","test":"tap --coverage --coverage-report=cobertura test/test-*.js","pretest":"eslint . && jscs ."},"_npmUser":{"name":"octet","email":"sam@strongloop.com"},"repository":{"url":"git+ssh://git@github.com/strongloop/strong-tunnel.git","type":"git"},"_npmVersion":"2.13.3","description":"Semi-transparent wrapper for arbitrary network connections over ssh2","directories":{},"_nodeVersion":"3.0.0","dependencies":{"ssh2":"^0.4.4"},"devDependencies":{"tap":"^1.3.2","jscs":"^1.11.3","eslint":"^0.18.0","buffer-equal-constant-time":"^1.0.1"}},"1.1.4":{"name":"strong-tunnel","version":"1.1.4","keywords":["ssh2","tunnel","proxy","tcp","socket","url"],"author":{"name":"StrongLoop","email":"callback@strongloop.com"},"license":"Artistic-2.0","_id":"strong-tunnel@1.1.4","maintainers":[{"name":"rmg","email":"r.m.graham@gmail.com"},{"name":"octet","email":"sam@strongloop.com"},{"name":"strongloop","email":"callback@strongloop.com"},{"name":"kraman","email":"kraman@strongloop.com"}],"homepage":"https://github.com/strongloop/strong-tunnel","bugs":{"url":"https://github.com/strongloop/strong-tunnel/issues"},"dist":{"shasum":"965b4ef6fdba62b82844981aadda93e7b497edad","tarball":"https://registry.npmjs.org/strong-tunnel/-/strong-tunnel-1.1.4.tgz","integrity":"sha512-xSdddh4uWk2uYOfF+QKlQN8FucEoeu0eCowH+VE1jZoVbzAw3v6H2Zsyf/PtfMJKXxwKQ+2iuk6Fkq6W+Mew2w==","signatures":[{"sig":"MEYCIQCqfnYYjwNLDa7ssiQzGf02Quah8VyTL3eyeKKNU0gEjQIhALmgRr41CdrjXOmN0KeK/IjRvpadHXK6S0oBUhPVrJrU","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"965b4ef6fdba62b82844981aadda93e7b497edad","gitHead":"c74459387f25f7e4e8e6d1948e99c23efaf8c049","scripts":{"lint":"eslint . && jscs .","test":"tap --coverage --coverage-report=cobertura test/test-*.js","pretest":"eslint . && jscs ."},"_npmUser":{"name":"octet","email":"sam@strongloop.com"},"repository":{"url":"git+ssh://git@github.com/strongloop/strong-tunnel.git","type":"git"},"_npmVersion":"2.13.3","description":"Semi-transparent wrapper for arbitrary network connections over ssh2","directories":{},"_nodeVersion":"3.0.0","dependencies":{"ssh2":"^0.4.4"},"devDependencies":{"tap":"^1.3.2","jscs":"^1.11.3","eslint":"^0.18.0","buffer-equal-constant-time":"^1.0.1"}},"1.1.5":{"name":"strong-tunnel","version":"1.1.5","keywords":["ssh2","tunnel","proxy","tcp","socket","url"],"author":{"name":"StrongLoop","email":"callback@strongloop.com"},"license":"Artistic-2.0","_id":"strong-tunnel@1.1.5","maintainers":[{"name":"bajtos","email":"mbajtoss@gmail.com"},{"name":"chandadharap","email":"chanda_dharap@yahoo.com"},{"name":"ibmcloud-admin","email":"rmg@ca.ibm.com"},{"name":"kraman","email":"kraman@strongloop.com"},{"name":"octet","email":"sam@strongloop.com"},{"name":"rfeng","email":"enjoyjava@gmail.com"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"rmg","email":"r.m.graham@gmail.com"},{"name":"strongloop","email":"strngops@us.ibm.com"}],"homepage":"https://github.com/strongloop/strong-tunnel","bugs":{"url":"https://github.com/strongloop/strong-tunnel/issues"},"dist":{"shasum":"dcc680603742b3beec4058b7108b18cbc6299141","tarball":"https://registry.npmjs.org/strong-tunnel/-/strong-tunnel-1.1.5.tgz","integrity":"sha512-oYBQbCgbMgegdF6m7TV93RFLlS0exCY/bWBUsk573YvqF1CWxaln6VEt55bOLA0lqnm0/2cmp5bfqYsE9ayObg==","signatures":[{"sig":"MEYCIQDb6jUgWw4B3NmWlwj9iUZZiY8LvsQpljLUaFRLnlOXPQIhAJNAvVeOeCtoQ2fBXsFyV2io61LMXpFoVxRioFE6XXpk","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"dcc680603742b3beec4058b7108b18cbc6299141","gitHead":"f74c0dda1367745a393a5338ae9283c5730808a5","scripts":{"lint":"eslint . && jscs .","test":"tap --coverage --coverage-report=cobertura test/test-*.js","pretest":"eslint . && jscs ."},"_npmUser":{"name":"octet","email":"sam@strongloop.com"},"repository":{"url":"git+ssh://git@github.com/strongloop/strong-tunnel.git","type":"git"},"_npmVersion":"2.14.7","description":"Semi-transparent wrapper for arbitrary network connections over ssh2","directories":{},"_nodeVersion":"4.2.1","dependencies":{"ssh2":"^0.4.4"},"devDependencies":{"tap":"^1.3.2","jscs":"^1.11.3","eslint":"^0.18.0","buffer-equal-constant-time":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/strong-tunnel-1.1.5.tgz_1460410942386_0.24096618918702006","host":"packages-12-west.internal.npmjs.com"}},"1.1.6":{"name":"strong-tunnel","version":"1.1.6","keywords":["ssh2","tunnel","proxy","tcp","socket","url"],"author":{"name":"StrongLoop","email":"callback@strongloop.com"},"license":"Artistic-2.0","_id":"strong-tunnel@1.1.6","maintainers":[{"name":"bajtos","email":"mbajtoss@gmail.com"},{"name":"chandadharap","email":"chanda_dharap@yahoo.com"},{"name":"ibmcloud-admin","email":"rmg@ca.ibm.com"},{"name":"kraman","email":"kraman@gmail.com"},{"name":"octet","email":"vieuxtech@gmail.com"},{"name":"rfeng","email":"enjoyjava@gmail.com"},{"name":"ritch","email":"skawful@gmail.com"},{"name":"rmg","email":"r.m.graham@gmail.com"},{"name":"strongloop","email":"strngops@us.ibm.com"}],"homepage":"https://github.com/strongloop/strong-tunnel","bugs":{"url":"https://github.com/strongloop/strong-tunnel/issues"},"dist":{"shasum":"0e9b651b5ff910920a9c41fca50851a80c81a028","tarball":"https://registry.npmjs.org/strong-tunnel/-/strong-tunnel-1.1.6.tgz","integrity":"sha512-vOLJ17AGlPB5iMZxiDL2uouBRfxgdBfvH6fkfPf3AFV83s3vKrolANpaQBiKGL2gAAZ+JQ6++G6E7R8UirUtFw==","signatures":[{"sig":"MEUCIHxxHLHWj+xY82MVBkZp3kcbM3DyIms7TIK33osjK1GKAiEAtS98UMabHSlNsIe26ZYO9RoVpg7TZj0yFDAtavg8tNI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"0e9b651b5ff910920a9c41fca50851a80c81a028","gitHead":"f2c37989cf45876d15bb3a9497450b7503303cee","scripts":{"lint":"eslint . && jscs .","test":"tap --coverage --coverage-report=cobertura test/test-*.js","pretest":"eslint . && jscs ."},"_npmUser":{"name":"rmg","email":"r.m.graham@gmail.com"},"repository":{"url":"git+ssh://git@github.com/strongloop/strong-tunnel.git","type":"git"},"_npmVersion":"3.8.8","description":"Semi-transparent wrapper for arbitrary network connections over ssh2","directories":{},"_nodeVersion":"4.4.3","dependencies":{"ssh2":"^0.4.4"},"devDependencies":{"tap":"^1.3.2","jscs":"^1.11.3","eslint":"^0.18.0","buffer-equal-constant-time":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/strong-tunnel-1.1.6.tgz_1462573863735_0.5253611204680055","host":"packages-16-east.internal.npmjs.com"}}},"time":{"created":"2015-02-25T18:46:23.738Z","modified":"2026-04-14T15:16:33.609Z","1.0.0":"2015-02-25T18:46:23.738Z","1.1.0":"2015-02-27T21:05:28.123Z","1.1.1":"2015-02-27T21:33:35.883Z","1.1.2":"2015-06-03T18:21:39.632Z","1.1.3":"2015-09-16T14:52:26.181Z","1.1.4":"2015-10-01T16:54:09.809Z","1.1.5":"2016-04-11T21:42:22.868Z","1.1.6":"2016-05-06T22:31:06.756Z"},"bugs":{"url":"https://github.com/strongloop/strong-tunnel/issues"},"author":{"name":"StrongLoop","email":"callback@strongloop.com"},"license":"Artistic-2.0","homepage":"https://github.com/strongloop/strong-tunnel","keywords":["ssh2","tunnel","proxy","tcp","socket","url"],"repository":{"url":"git+ssh://git@github.com/strongloop/strong-tunnel.git","type":"git"},"description":"Semi-transparent wrapper for arbitrary network connections over ssh2","maintainers":[{"email":"r.m.graham@gmail.com","name":"rmg"},{"email":"oss@bajtos.net","name":"bajtos"},{"email":"skawful@gmail.com","name":"ritch"},{"email":"captain@hacksparrow.com","name":"hacksparrow"},{"email":"enjoyjava@gmail.com","name":"rfeng"},{"email":"superkhau@gmail.com","name":"superkhau"},{"email":"kraman@gmail.com","name":"kraman"},{"email":"gpandya@live.com","name":"thegman"},{"email":"davidcheung@live.ca","name":"davidcheung"},{"email":"tffrench@us.ibm.com","name":"tonyf-ibm"},{"email":"ngcandy@ca.ibm.com","name":"0candy"},{"email":"qpresley@ca.ibm.com","name":"qpresley"},{"email":"kjdelisle@gmail.com","name":"kjdelisle"},{"email":"amirali.jfr61@gmail.com","name":"amir-61"},{"email":"juehou@ca.ibm.com","name":"jannyhou2016"},{"email":"binadmt@hotmail.com","name":"b-admike"}],"readme":"# strong-tunnel\n\nEasy tunnelling over ssh2.\n\n## Usage\n\nThere is nothing to configure, but some environment variables are used to\nset defaults if no options are given.\n\n```\nvar st = require('strong-tunnel');\n\nst(someUrl, sshOpts, function(err, url) {\n  // if someUrl was plain http, url will be someUrl\n  // if someUrl was http+ssh://, url points to a local ephemeral tunnel\n  // sshOpts is optional with defaults described below.\n  http.get(url, onResponse);\n});\n```\n\n### Username\n\nYour current local username is assumed to be the username used for ssh. To\noverride this you can set the `LOGNAME` environment variable to the desired\nusername before the tunnel URL is created.\n\n### Credentials\n\nTo keep the API simple, it is assumed that an ssh agent is already running,\nthat the path to its domain socket is in the `SSH_AUTH_SOCK` environment\nvariable, and that an appropriate private key has been loaded into that agent.\n\nThis is usually done for you in modern \\*nix environments as part of your\nlogin shell/session. See\n[ssh-agent(1)](http://www.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man1/ssh-agent.1)\nfor more information about ssh agents.\n\n### Longer Example\n\n```js\nvar fmt = require('util').format;\nvar http = require('http');\nvar st = require('strong-tunnel');\n\nvar server = http.createServer(function(req, res) {\n  res.end(JSON.stringify(req.headers));\n});\n\nvar sshOpts = {\n  host: '127.0.0.1',\n};\n\nserver.listen(3030, function() {\n  var direct = 'http://127.0.0.1:3030/';\n  var tunneled = 'http+ssh://127.0.0.1:3030/';\n\n  // Standard request using URL string\n  http.get(direct, resLog('%s using %s:', direct, direct));\n\n  // URL is only modified if a tunnelling URL was given\n  st(direct, function(err, url) {\n    if (err) throw err;\n    // url == direct, unmodified\n    http.get(url, resLog('%s using %s:', direct, url));\n  });\n\n  // optional second argument containing ssh config\n  st(tunneled, sshOpts, function(err, url) {\n    if (err) throw err;\n    // url != tunneled, is modified\n    http.get(url, resLog('%s using %s:', tunneled, url));\n  });\n\n  server.unref();\n});\n\nfunction resLog(prefix) {\n  prefix = fmt.apply(null, arguments);\n  return function onResponse(res) {\n    res.on('data', function(d) {\n      console.log('%s -> %s', prefix, d);\n    });\n  };\n}\n```\n","readmeFilename":"README.md","users":{"netroy":true,"jhliberty":true,"nachbar90":true,"brandonpapworth":true}}