# SSH-учетные данные

> Управление SSH-учетными данными в SecureBaseline Cloud - хранение приватных ключей, настройка методов аутентификации и безопасное подключение к хостам

Source: https://opennix.org/docs/haas/credentials/

## Обзор

SSH-учетные данные используются для аутентификации при подключении к управляемым хостам. Платформа поддерживает два типа аутентификации:

- **Пароль** - имя пользователя и пароль
- **SSH-ключ** - имя пользователя и приватный ключ

## Управление учетными данными

### Доступ к менеджеру учетных данных

1. Перейдите на страницу **Хосты**
2. Нажмите кнопку **Управление учетными данными**
3. Откроется модальное окно управления учетными данными

### Создание учетных данных

1. Нажмите **Добавить новые учетные данные**
2. Заполните поля:

| Поле | Описание |
|------|----------|
| Имя | Описательное имя (например, "Production SSH Key") |
| Тип | Пароль или SSH-ключ |
| Имя пользователя | Имя пользователя SSH (например, root, ubuntu) |
| Пароль | (Для типа пароль) Пароль SSH |
| Приватный ключ | (Для типа SSH-ключ) Полное содержимое приватного ключа |

3. Нажмите **Создать**

### Аутентификация по паролю

Для аутентификации на основе пароля:

1. Выберите тип **Пароль**
2. Введите имя пользователя SSH
3. Введите пароль SSH
4. Сохраните учетные данные

### Аутентификация по SSH-ключу

Для аутентификации на основе ключа:

1. Выберите тип **SSH-ключ**
2. Введите имя пользователя SSH
3. Вставьте полный приватный ключ, включая заголовки:

```
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEA...
...
-----END RSA PRIVATE KEY-----
```

4. Сохраните учетные данные

**Поддерживаемые форматы ключей**:
- RSA (рекомендуется)
- ED25519
- ECDSA

### Удаление учетных данных

1. Найдите учетные данные в списке
2. Нажмите кнопку **Удалить**
3. Подтвердите удаление

**Внимание**: Нельзя удалить учетные данные, используемые хостами. Сначала переназначьте или удалите эти хосты.

## Лучшие практики безопасности

### Используйте SSH-ключи вместо паролей

SSH-ключи обеспечивают:
- Более надежную аутентификацию
- Отсутствие передачи пароля по сети
- Лучший аудит-трейл
- Более простую ротацию

### Используйте выделенную сервисную учетную запись

Создайте выделенного пользователя для платформы:

```bash
# На каждом управляемом сервере
sudo useradd -m -s /bin/bash haas-service
sudo mkdir -p /home/haas-service/.ssh
sudo chmod 700 /home/haas-service/.ssh
```

### Предоставьте минимально необходимые права

Сервисной учетной записи нужен sudo-доступ для операций усиления:

```bash
# /etc/sudoers.d/haas-service
haas-service ALL=(ALL) NOPASSWD: ALL
```

Для доступа только к сканированию (без усиления):
```bash
haas-service ALL=(ALL) NOPASSWD: /usr/bin/oscap
```

### Регулярно обновляйте учетные данные

1. Сгенерируйте новую пару SSH-ключей
2. Добавьте новый публичный ключ на серверы
3. Создайте новые учетные данные в платформе
4. Обновите хосты для использования новых учетных данных
5. Удалите старый публичный ключ с серверов
6. Удалите старые учетные данные из платформы

### Защищайте приватные ключи

- Никогда не передавайте приватные ключи
- Используйте ключи с парольной фразой для локального хранения
- Храните ключи в безопасном хранилище, когда они не используются
- Ограничьте доступ к управлению учетными данными

## Использование учетных данных

### Назначение хостам

При создании или редактировании хоста:

1. Выберите учетные данные из выпадающего списка
2. Хост будет использовать эти учетные данные для всех SSH-подключений

### Проверка работоспособности учетных данных

1. Создайте учетные данные
2. Добавьте хост с этими учетными данными
3. Нажмите **Проверить** на хосте
4. При успехе хост показывает статус **Online**

## Генерация SSH-ключа

```bash
# Ed25519 (рекомендуется)
ssh-keygen -t ed25519 -C "haas-automation"

# RSA (4096 бит)
ssh-keygen -t rsa -b 4096 -C "haas-automation"
```

## Копирование ключа на сервер

```bash
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@host
```

## Просмотр приватного ключа

```bash
cat ~/.ssh/id_ed25519
```

Скопируйте полный вывод, включая строки BEGIN и END.

## Устранение неполадок

### Ошибка аутентификации

1. Проверьте корректность имени пользователя
2. Для пароля: проверьте корректность пароля
3. Для SSH-ключа: убедитесь, что приватный ключ соответствует публичному ключу на сервере
4. Проверьте существование пользователя на целевом сервере
5. Убедитесь, что SSH включен для этого пользователя

### Отказ в доступе

1. Проверьте, что пользователь имеет доступ к shell
2. Проверьте права sudo при выполнении усиления
3. Проверьте `/etc/ssh/sshd_config` на разрешение этого пользователя

### Ошибка формата ключа

1. Убедитесь, что вставлен полный ключ, включая строки BEGIN/END
2. Проверьте на наличие лишних пробелов или переносов строк
3. Убедитесь, что ключ в формате PEM (не PPK или других форматах)

### Проверка ключа хоста

Платформа автоматически принимает ключи хостов при первом подключении. Если ключ хоста изменился (сервер переустановлен), подключение может не удаться. Обратитесь к администратору для очистки кэша известных хостов.

## Дополнительные материалы

- [Усиление безопасности серверов](/docs/haas/hardening/) - после настройки учетных данных запустите CIS-усиление на подключенных хостах
- [Устранение неполадок SSH-подключений](/docs/haas/troubleshooting/) - решение распространенных проблем аутентификации и доступа
- [Аудит безопасности инфраструктуры](/security-audit/) - комплексная оценка безопасности серверов и сетевой инфраструктуры

