60 lines
1.6 KiB
Bash
60 lines
1.6 KiB
Bash
|
#!/bin/bash
|
|||
|
set -e
|
|||
|
|
|||
|
# Создаем структуру проекта
|
|||
|
mkdir -p tor-ssh
|
|||
|
cd tor-ssh
|
|||
|
|
|||
|
# Создаем Dockerfile
|
|||
|
cat > Dockerfile <<- EOF
|
|||
|
FROM alpine:3.18
|
|||
|
|
|||
|
RUN apk add --no-cache \\
|
|||
|
tor \\
|
|||
|
bash
|
|||
|
|
|||
|
# Настройка Tor для проброса SSH
|
|||
|
RUN mkdir -p /var/lib/tor/ssh && \\
|
|||
|
chmod 700 /var/lib/tor/ssh && \\
|
|||
|
echo "HiddenServiceDir /var/lib/tor/ssh/" >> /etc/tor/torrc && \\
|
|||
|
echo "HiddenServicePort 22 172.17.0.1:22" >> /etc/tor/torrc
|
|||
|
|
|||
|
EXPOSE 22
|
|||
|
CMD ["tor", "-f", "/etc/tor/torrc"]
|
|||
|
EOF
|
|||
|
|
|||
|
# Создаем docker-compose.yml
|
|||
|
cat > docker-compose.yml <<- EOF
|
|||
|
version: '3.8'
|
|||
|
|
|||
|
services:
|
|||
|
tor-ssh:
|
|||
|
build: .
|
|||
|
container_name: tor-ssh
|
|||
|
volumes:
|
|||
|
- tor_data:/var/lib/tor
|
|||
|
restart: unless-stopped
|
|||
|
|
|||
|
volumes:
|
|||
|
tor_data:
|
|||
|
EOF
|
|||
|
|
|||
|
# Запускаем проект
|
|||
|
echo "Сборка и запуск контейнера..."
|
|||
|
docker-compose up -d --build
|
|||
|
|
|||
|
# Ждем, пока Tor сгенерирует onion-адрес
|
|||
|
echo "Ожидание генерации onion-адреса..."
|
|||
|
sleep 10
|
|||
|
|
|||
|
# Получаем onion-адрес
|
|||
|
ONION_ADDRESS=$(docker exec tor-ssh cat /var/lib/tor/ssh/hostname)
|
|||
|
if [ -z "$ONION_ADDRESS" ]; then
|
|||
|
echo "Ошибка: onion-адрес не был сгенерирован!"
|
|||
|
exit 1
|
|||
|
fi
|
|||
|
|
|||
|
echo "Onion-адрес для подключения: $ONION_ADDRESS"
|
|||
|
echo "Для подключения используйте:"
|
|||
|
echo "1. Через Tor: torify ssh ваш_пользователь@$ONION_ADDRESS"
|
|||
|
echo "2. Убедитесь, что SSH-сервер на хосте настроен и доступен на порту 22."
|