infra/SSH_ACCESS.md

SSH Access Configuration

Дата создания: 2025-11-18
Статус: ✅ Настроено и работает


🔑 SSH Ключ

Расположение:
- Приватный ключ: /root/.ssh/id_rsa
- Публичный ключ: /root/.ssh/id_rsa.pub
- Конфигурация: /root/.ssh/config

Fingerprint:

SHA256:3P6Ru2XOvzVkWytrgaUqVcgU/aVpB61a3WegDmgbT78 claude-workspace

🖥️ Доступные серверы

1. Beget Server (Kondurov account)

Подключение:

# Полная форма
ssh kondurov@kondurov.beget.tech

# Короткий alias
ssh beget

# Или
ssh beget-kondurov

Детали:
- Хост: kondurov.beget.tech (epsilon2.beget.ru)
- Пользователь: kondurov
- Домашняя папка: /home/k/kondurov/
- Сайты: ~/pirotehnika.spb.ru/

2. Pirotehnika Database Access

Подключение:

ssh pirotehnika

MySQL через SSH:

ssh beget "mysql -h 127.0.0.1 -u kondurov_pspb -p'7Dl*9Gh2' kondurov_pspb"

📋 Примеры использования

Выполнение команд на сервере

# Проверка версии PHP
ssh beget "php -v"

# Список сайтов
ssh beget "ls -la ~/"

# Проверка изображений pirotehnika
ssh beget "ls -lh ~/pirotehnika.spb.ru/public_html/image/import_files/ | head -20"

Копирование файлов

# Загрузить файл на сервер
scp /tmp/script.php beget:~/

# Скачать файл с сервера
scp beget:~/pirotehnika.spb.ru/public_html/export/exchange1c.php /tmp/

# Загрузить директорию
scp -r /tmp/images/* beget:~/pirotehnika.spb.ru/public_html/image/import_files/

Запуск PHP скриптов

# Локальный скрипт → удалённое выполнение
scp /tmp/update_db.php beget:~/
ssh beget "php ~/update_db.php"

# Или одной командой
ssh beget 'php' < /tmp/update_db.php

MySQL запросы

# Простой запрос
ssh beget "mysql -h 127.0.0.1 -u kondurov_pspb -p'7Dl*9Gh2' kondurov_pspb -e 'SELECT COUNT(*) FROM oc_product;'"

# Экспорт данных
ssh beget "mysql -h 127.0.0.1 -u kondurov_pspb -p'7Dl*9Gh2' kondurov_pspb -e 'SELECT * FROM oc_manufacturer;'" > /tmp/manufacturers.txt

⚙️ SSH Config

Файл: /root/.ssh/config

# Beget Server (Kondurov account)
Host beget-kondurov
    HostName kondurov.beget.tech
    User kondurov
    IdentityFile ~/.ssh/id_rsa
    StrictHostKeyChecking no
    ServerAliveInterval 60
    ServerAliveCountMax 3

# Beget Server - pirotehnika.spb.ru database
Host pirotehnika-db
    HostName pirotehnika.spb.ru
    User kondurov_pspb
    IdentityFile ~/.ssh/id_rsa
    StrictHostKeyChecking no
    ServerAliveInterval 60
    ServerAliveCountMax 3

# Aliases
Host beget
    HostName kondurov.beget.tech
    User kondurov
    IdentityFile ~/.ssh/id_rsa
    StrictHostKeyChecking no

Host pirotehnika
    HostName pirotehnika.spb.ru
    User kondurov_pspb
    IdentityFile ~/.ssh/id_rsa
    StrictHostKeyChecking no

🔐 Безопасность

Публичный ключ скопирован на сервер:

# Автоматически добавлен в ~/.ssh/authorized_keys на сервере
# Дата: 2025-11-18

Преимущества:
- ✅ Не нужно вводить пароль при каждом подключении
- ✅ Безопаснее чем пароль (4096-bit RSA)
- ✅ Можно использовать в скриптах
- ✅ Автоматическое переподключение (ServerAliveInterval)


🚨 Troubleshooting

Ошибка: Host key verification failed

ssh-keygen -R kondurov.beget.tech
ssh beget

Ошибка: Permission denied (publickey)

# Проверить права на ключ
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub

# Проверить что ключ добавлен на сервер
ssh-add -l

Переустановка ключа

# Удалить старый ключ
rm ~/.ssh/id_rsa ~/.ssh/id_rsa.pub

# Создать новый
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -N "" -C "claude-workspace"

# Скопировать на сервер (нужен пароль: см. .credentials.md)
ssh-copy-id -i ~/.ssh/id_rsa.pub kondurov@kondurov.beget.tech

📝 Заметки


Создано: 2025-11-18
Автор: Claude Code
Статус: Активно используется