---
name: connect-to-contabo-via-nodejs
title: Подключение к Contabo-серверу через Node.js SSH2
description: Как подключиться к Contabo VPS (157.173.122.51) из Docker-контейнера, где нет ssh-клиента
---

## Когда использовать
Когда нужно выполнить команду на Contabo-сервере (root@157.173.122.51) из Hermes-контейнера, где нет бинарника ssh.

## Предусловия
- Файл ключа: `/opt/data/home/.ssh/id_ed25519` (Ed25519, hermes-agent)
- Node.js модуль ssh2 доступен в `/tmp/node_modules/ssh2`

## Шаги

1. Выполнить команду через Node.js ssh2:

```bash
cd /tmp && node -e "
const { Client } = require('ssh2');
const fs = require('fs');
const key = fs.readFileSync('/opt/data/home/.ssh/id_ed25519');
const conn = new Client();
conn.on('ready', () => {
  conn.exec('КОМАНДА', (err, stream) => {
    if (err) { console.log('ERR', err.message); return; }
    let out = '';
    stream.on('data', d => out += d);
    stream.on('close', () => { console.log(out); process.exit(); });
  });
}).on('error', e => { console.log('ERR', e.message); process.exit(1); })
.connect({ host: '157.173.122.51', port: 22, username: 'root', privateKey: key, readyTimeout: 10000, hostVerifier: () => true });
"
```

## Важно
- Ключ уже сохранён и имеет права 600
- Если ssh2 не найден — запустить `cd /tmp && npm install ssh2`
- Пароль root: 3n7ETSB0vyP99 (но доступ только по ключу, пароль отключён)
