Node.js で ssh 接続をする方法です。
ライブラリーのインストール
sudo npm install ssh2 -g
ssh_exec.js
# ! /usr/bin/node
//
// ssh_exec.js
//
// Jan/20/2022
// ---------------------------------------------------------------
const { readFileSync } = require('fs')
const { Client } = require('ssh2')
const dotenv = require('dotenv')
dotenv.config()
host = process.env.HOST
user = process.env.USER
command = process.env.COMMAND
key_private = process.env.KEY_PRIVATE
const conn = new Client()
conn.on('ready', () => {
console.log('Client :: ready')
conn.exec(command, (err, stream) => {
if (err) throw err
stream.on('close', (code, signal) => {
console.log('Stream :: close :: code: ' + code + ', signal: ' + signal)
conn.end()
}).on('data', (data) => {
console.log('STDOUT: ' + data)
}).stderr.on('data', (data) => {
console.log('STDERR: ' + data)
})
})
}).connect({
host: host,
port: 22,
username: user,
privateKey: readFileSync(key_private)
})
// ---------------------------------------------------------------
.env
HOST = "example.com"
USER = "scott"
COMMAND = "cd /home/scott/tmp/jan20 ; ls -l"
KEY_PRIVATE = "/home/scott/.ssh/key_private"
実行スクリプト
export NODE_PATH=/usr/lib/node_modules
./ssh_exec.js