Прочитайте конфигурационный файл SSH и войдите на сервер, используя библиотеку Node-JS npm

#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-клиент?