#SSH-данные
GET /v1/infra/servers/:id/ssh
Возвращает данные для SSH-подключения. Полноценный SSH-доступ (с паролем, приватным ключом и публичным ключом) возвращается только для серверов в режиме OPEN. Для BLACKHOLE все SSH-поля — null: сервер закрыт фаерволом iptables, и прямой SSH невозможен. Вместо SSH для BLACKHOLE используйте Deploy API — /exec, /upload, /logs. Rate-limit: до 10 запросов в минуту на сервер.
#Параметры
| Параметр | В | Тип | Обяз. | Описание |
|---|---|---|---|---|
id |
path | string (UUID) | да | ID сервера |
#Примеры
#curl — личный ключ
curl -H "X-Api-Key: YOUR_API_KEY" \
https://vibecode.bitrix24.tech/v1/infra/servers/SERVER_ID/ssh
#curl — OAuth-приложение
curl -H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
https://vibecode.bitrix24.tech/v1/infra/servers/SERVER_ID/ssh
#JavaScript — личный ключ
const res = await fetch(
`https://vibecode.bitrix24.tech/v1/infra/servers/${serverId}/ssh`,
{ headers: { 'X-Api-Key': 'YOUR_API_KEY' } }
)
const { data } = await res.json()
if (data.mode === 'OPEN') {
console.log('Команда:', data.sshCommand)
console.log('Пароль:', data.sshPassword) // если выдавался
} else {
console.log(data.note) // BLACKHOLE — используйте Deploy API
}
#JavaScript — OAuth-приложение
const res = await fetch(
`https://vibecode.bitrix24.tech/v1/infra/servers/${serverId}/ssh`,
{
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
}
)
#Поля ответа
| Поле | Тип | Описание |
|---|---|---|
success |
boolean | Всегда true при успехе |
data.mode |
string | OPEN или BLACKHOLE |
data.ip |
string | Публичный IP сервера |
data.sshDirect |
boolean | true для OPEN (SSH работает по IP), false для BLACKHOLE (закрыт файрволом) |
data.sshUser |
string | null | Пользователь SSH: ubuntu или root. null для BLACKHOLE |
data.sshPort |
number | null | Порт SSH: 22. null для BLACKHOLE |
data.sshPassword |
string | null | Пароль. Для BLACKHOLE всегда null. Для OPEN — пароль если сервер сгенерил один при переходе в OPEN |
data.sshPrivateKey |
string | null | Приватный ключ OpenSSH (ed25519). Возвращается для OPEN-сервера, когда платформа его сгенерировала |
data.sshPublicKey |
string | null | Публичный ключ (ed25519) — соответствующая публичная часть к sshPrivateKey |
data.sshCommand |
string | null | Готовая команда для копирования: ssh ubuntu@IP. Для BLACKHOLE — null |
data.appUrl |
string | HTTPS-адрес приложения (присутствует только для BLACKHOLE, где SSH недоступен) |
data.note |
string | Пояснение для BLACKHOLE: «BLACKHOLE servers do not expose SSH. Use the Deploy API…» |
#Пример ответа
OPEN-сервер:
{
"success": true,
"data": {
"mode": "OPEN",
"ip": "111.88.251.211",
"sshUser": "ubuntu",
"sshPort": 22,
"sshPassword": "Oi9owBO6zMbueGmM75J9hg",
"sshPrivateKey": "-----BEGIN OPENSSH PRIVATE KEY-----\nb3BlbnNzaC1rZXktdjEAAAAABG5vbmU…\n-----END OPENSSH PRIVATE KEY-----\n",
"sshPublicKey": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM0JAP1EMGh0CkT7RkZ26pTSa4X1FsWXe61cB5Fiqqjz vibe-generated",
"sshCommand": "ssh ubuntu@111.88.251.211",
"sshDirect": true
}
}
BLACKHOLE-сервер:
{
"success": true,
"data": {
"mode": "BLACKHOLE",
"ip": "93.77.184.167",
"sshDirect": false,
"sshPassword": null,
"sshPrivateKey": null,
"sshPublicKey": null,
"sshCommand": null,
"appUrl": "https://app-abc12345.vibecode.bitrix24.tech",
"note": "BLACKHOLE servers do not expose SSH. Use the Deploy API (exec/upload/logs) instead."
}
}
#Пример ответа при ошибке
404 — сервер не существует:
{
"success": false,
"error": {
"code": "NOT_FOUND",
"message": "Server not found"
}
}
#Ошибки
| HTTP | Код | Описание |
|---|---|---|
| 401 | MISSING_API_KEY |
Не передан заголовок X-Api-Key |
| 401 | INVALID_API_KEY |
Неверный или просроченный API-ключ |
| 404 | NOT_FOUND |
Сервер не существует, удалён или принадлежит другому API-ключу |
| 429 | RATE_LIMIT_EXCEEDED |
Превышен rate-limit (до 10 запросов в минуту на сервер) либо общий rate-limit платформы |
Полный список общих ошибок API — Ошибки.
#Известные особенности
- Каждый BLACKHOLE → OPEN переход генерирует новый пароль. Старые пароли (если они были) становятся недействительными. То же при обратном цикле BLACKHOLE → OPEN → BLACKHOLE → OPEN: на каждый вход в OPEN платформа генерирует свежий
sshPassword. Пароль также возвращается в ответе на `PATCH /mode` — можно сохранить оттуда. sshPrivateKeyиsshPublicKeyотдаются только для ключей, сгенерированных платформой. Если при создании сервера через `POST /v1/infra/servers` вы передали свойsshPublicKey, платформа не генерировала приватный ключ — полеsshPrivateKeyв ответе будетnull. Используйте свой приватный ключ со стороны клиента.sshCommand— готовое «copy-paste» для AI-агентов и скриптов. Это не отдельная команда запуска — простоssh ubuntu@IP. Аутентификация через пароль или ключ — отдельный шаг на стороне SSH-клиента.- Отдельное ограничение — 10 запросов в минуту на сервер существует именно из-за чувствительности возвращаемых данных. Общий лимит платформы выше, но
/sshограничивается жёстче.
#Смотрите также
- Переключить режим —
PATCH /v1/infra/servers/:id/mode— перейти в OPEN/BLACKHOLE. - Выполнить команду —
POST /v1/infra/servers/:id/exec— SSH-эквивалент для BLACKHOLE. - Загрузить файл —
POST /v1/infra/servers/:id/upload— scp-эквивалент для BLACKHOLE. - Политика доступа — кому видно приложение по HTTPS.