redis-ssh2
v1.0.3
Published
Execute Redis commands over an ssh tunnel.And conncet to Redis use user's config not use in localhost.
Downloads
9
Maintainers
Readme
Redis-SSH2
This project is based on 【Node.js】SSH経由でRedisへ接続する Sets up a Redis connection inside an SSH tunnel. This is practical when you want to reach a Redis which is only accessible through a webserver. Even if the Redis server is not located on the webserver itself. It avoids denied from Redis when we use localhost.
API
.connect(obj sshConfig, obj dbConfig)
sshConfig
should be an object according to thessh2
package.dbConfig
should be an object according to theRedis2
package.- Returns a Promise, containing a connection from the
Redis2
package.
Usage
Don't forget to .close()
the tunnel connection when you're done querying the database.
const Redis = require('redis-ssh2');
const fs = require('fs');
Redis.connect(
{
host: 'my-ssh-server.org',
user: 'me-ssh',
privateKey: fs.readFileSync(process.env.HOME + '/.ssh/id_rsa')
},
{
host: 'my-db-host.com',
port: 'me-port',
password: 'secret',
db: 'my-db-name'
}
)
.then(client => {
client.get('values', (err, reply) => {
if (err) throw err
console.log(results);
Redis.close()
})
})
.catch(err => {
console.log(err)
})
If you use password in tunnl,you can use it.
const Redis = require('redis-ssh2');
const fs = require('fs');
Redis.connect(
{
host: 'my-ssh-server.org',
user: 'me-ssh',
password: ''
},
{
host: 'my-db-host.com',
port: 'me-port',
password: 'secret',
db: 'my-db-name'
}
)
.then(client => {
client.get('SELECT * FROM `users`', (err, reply) => {
if (err) throw err
console.log(results);
Redis.close()
})
})
.catch(err => {
console.log(err)
})