#node.js #npm #ssh
#node.js #npm #ssh
Вопрос:
Я могу подключиться к экземплярам EC2 через git-bash / Putty, когда я выполняю следующую команду: ssh host-name .Это работает, потому что в файле ssh / config присутствуют все параметры. Мое требование — сделать то же самое, используя библиотеку Node-js npm. есть ли способ это сделать? Спасибо
Ответ №1:
Доступен пакет npm. https://www.npmjs.com/package/node-ssh
Когда вы создаете свой экземпляр EC2 (например, сервер ubuntu), вы можете загрузить файл с закрытым ключом yourprivatekey.pem
, который вам нужен для аутентификации. Создайте новый проект узла и запустите npm i node-ssh
. Скопируйте yourprivatekey.pem
в папку проекта и измените разрешение файла chmod 400 yourprivatekey.pem
. Создайте index.js
файл в папке проекта и вставьте следующий пример кода с помощью команды копирования ssh, чтобы скопировать файл из EC2 на ваш локальный компьютер.
const fs = require('fs')
const path = require('path')
const {NodeSSH} = require('node-ssh')
const ssh = new NodeSSH()
ssh.connect({
host: 'abc123456-example.compute-1.amazonaws.com', //replace with your ec2 host
username: 'ubuntu', //replace with your EC2 username
privateKey: './yourprivatekey.pem' //replace with your private key file
})
.then(function() {
// Local, Remote (replace with you own file path)
ssh.getFile('/home/pi/test.txt', '/home/ubuntu/test.txt').then(function(Contents) {
console.log("The File's contents were successfully downloaded")
}, function(error) {
console.log("Something's wrong")
console.log(error)
})
})
Другие операции ssh см. В документации API по ссылке выше.
Комментарии:
1. я проверял это и раньше, но не смог понять, как это используется здесь. Не могли бы вы поместить пару строк, куда вы хотите, чтобы я ссылался.
2. Нет, это не сработает, потому что я пытаюсь подключиться к частному серверу через bastion host. Этот npm не поддерживает bastion host. Вот почему я искал какую-нибудь библиотеку npm, которая может читать мой ssh / config файл.
3. вы хотите настроить ssh-сервер или ssh-клиент?