Попытка S SH с помощью транспортира - PullRequest
1 голос
/ 24 апреля 2020

Я использую транспортир на моей windows виртуальной машине, и мне нужно выполнить некоторые команды на linux виртуальной машине. Я пытаюсь использовать S SH, чтобы сделать то же самое. Я пытался использовать 'simple-s sh', 'remote-exe c' и 's sh -exe c. Проблема со всеми из них одна и та же, тест транспортира завершается без ошибок, но соединение S SH не установлено. Как ни странно, это также не выдает никакой ошибки, я попытался дать неправильный IP, но все же, никакой ошибки не выдается. Я пробовал S SH поверх python на той же машине, он работает безупречно.

Вот фрагмент кода из документации, который я непосредственно пытался использовать.

var ssh = new SSH({
             host: 'xx.xx.xxx.xx',
             user: 'xxxxx',
             pass: 'xxxxx'
         });

         ssh.exec('ls -lh', {
            out: function(stdout) {
                console.log(stdout);
            }
        }).start();

1 Ответ

0 голосов
/ 24 апреля 2020

Понял.

Я использовал пакет ssh2 , чтобы установить sh интерактивный сеанс S SH. Затем я синхронизировал его с жасмином, используя done () в jasmine 2.

Для решения проблемы syn c использовал решение Maciej Ciach .

Вот блок 'It', который работает безупречно

it("trying ssh connection", function (done) {
        var conn = new Client();
        conn.on('ready', function () {
            console.log('Client :: ready');
            conn.shell(function (err, stream) {
                if (err) throw err;
                stream.on('close', function () {
                    console.log('Stream :: close');
                    conn.end();
                }).on('data', function (data) {
                    console.log('OUTPUT: ' + data);
                });
                stream.end('ls \nexit\n');
                done();
            });
        }).connect({
            host: 'xx.xx.xxx.xx',
            port: 22,
            username: 'x',
            privateKey: require('fs').readFileSync('file_path')

        });
    })

Очевидно, вам нужно сначала добавить свой publi c s sh ключ в список доверенных ключей на вашем сервере. Вы можете прочитать об этом здесь .

Если вы используете windows, выполните эти команды в Powershell.

...