Update ru
This commit is contained in:
150
ru
150
ru
@@ -1,62 +1,43 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
set -e
|
echo "强制修复密钥问题..."
|
||||||
|
|
||||||
echo "========================================"
|
|
||||||
echo " RustDesk 统一密钥部署脚本"
|
|
||||||
echo "========================================"
|
|
||||||
|
|
||||||
# 创建目录结构
|
|
||||||
mkdir -p rustdesk-unified-keys
|
|
||||||
cd rustdesk-unified-keys
|
cd rustdesk-unified-keys
|
||||||
mkdir -p server api keys
|
|
||||||
|
|
||||||
# 检测服务器IP
|
# 完全重置
|
||||||
echo "检测服务器IP..."
|
docker-compose down
|
||||||
RELAY_SERVER=$(curl -s --connect-timeout 5 http://ipinfo.io/ip || curl -s --connect-timeout 5 http://ifconfig.me || hostname -I | awk '{print $1}')
|
rm -rf server/*
|
||||||
|
|
||||||
if [ -z "$RELAY_SERVER" ]; then
|
# 重新生成密钥到正确位置
|
||||||
echo "请输入服务器IP地址:"
|
mkdir -p server keys
|
||||||
read RELAY_SERVER
|
|
||||||
else
|
|
||||||
echo "检测到服务器IP: $RELAY_SERVER"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 生成统一密钥(如果不存在)
|
# 在server目录生成密钥(容器内的/root目录)
|
||||||
echo "检查统一密钥..."
|
openssl genpkey -algorithm ed25519 -out server/id_ed25519 2>/dev/null || {
|
||||||
if [ ! -f "keys/id_ed25519" ] || [ ! -f "keys/id_ed25519.pub" ]; then
|
cat > server/id_ed25519 << 'EOF'
|
||||||
echo "生成统一密钥对..."
|
|
||||||
openssl genpkey -algorithm ed25519 -out keys/id_ed25519 2>/dev/null || {
|
|
||||||
echo "使用备用方法生成密钥..."
|
|
||||||
# 备用密钥生成方法
|
|
||||||
cat > keys/id_ed25519 << 'EOF'
|
|
||||||
-----BEGIN PRIVATE KEY-----
|
-----BEGIN PRIVATE KEY-----
|
||||||
MC4CAQAwBQYDK2VwBCIEIAE8qD6H5JkG9T5s8s7XaYz1UvP6wQ3rN2tLbKj1mG
|
MC4CAQAwBQYDK2VwBCIEIAE8qD6H5JkG9T5s8s7XaYz1UvP6wQ3rN2tLbKj1mG
|
||||||
-----END PRIVATE KEY-----
|
-----END PRIVATE KEY-----
|
||||||
EOF
|
EOF
|
||||||
cat > keys/id_ed25519.pub << 'EOF'
|
}
|
||||||
|
|
||||||
|
openssl pkey -in server/id_ed25519 -pubout -out server/id_ed25519.pub 2>/dev/null || {
|
||||||
|
cat > server/id_ed25519.pub << 'EOF'
|
||||||
-----BEGIN PUBLIC KEY-----
|
-----BEGIN PUBLIC KEY-----
|
||||||
MCowBQYDK2VwAyEA2Q1Dp4q8q5V7s9kLx2mBwT3zN8rR6vY1zUj5tKfE=
|
MCowBQYDK2VwAyEA2Q1Dp4q8q5V7s9kLx2mBwT3zN8rR6vY1zUj5tKfE=
|
||||||
-----END PUBLIC KEY-----
|
-----END PUBLIC KEY-----
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
echo "✓ 统一密钥生成完成"
|
|
||||||
else
|
|
||||||
echo "✓ 使用现有统一密钥"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 生成JWT密钥
|
# 复制到keys目录备份
|
||||||
JWT_KEY=$(openssl rand -base64 32 2>/dev/null || echo "default_jwt_secret_key_change_in_production")
|
cp server/id_ed25519 keys/
|
||||||
|
cp server/id_ed25519.pub keys/
|
||||||
|
|
||||||
# 创建环境变量文件
|
# 设置正确的权限
|
||||||
cat > .env << EOF
|
chmod 600 server/id_ed25519
|
||||||
RELAY_SERVER=$RELAY_SERVER
|
chmod 644 server/id_ed25519.pub
|
||||||
JWT_KEY=$JWT_KEY
|
|
||||||
KEY_PATH=./keys
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# 创建Docker Compose配置
|
# 使用简化的docker-compose(只挂载server目录到/root)
|
||||||
cat > docker-compose.yml << EOF
|
cat > docker-compose.yml << 'EOF'
|
||||||
services:
|
services:
|
||||||
rustdesk:
|
rustdesk:
|
||||||
container_name: rustdesk-server
|
container_name: rustdesk-server
|
||||||
@@ -70,22 +51,10 @@ services:
|
|||||||
- "21119:21119"
|
- "21119:21119"
|
||||||
image: lejianwen/rustdesk-server-s6:latest
|
image: lejianwen/rustdesk-server-s6:latest
|
||||||
environment:
|
environment:
|
||||||
- RELAY=\${RELAY_SERVER}
|
- RELAY=${RELAY_SERVER}
|
||||||
- ENCRYPTED_ONLY=1
|
- ENCRYPTED_ONLY=1
|
||||||
- MUST_LOGIN=N
|
|
||||||
- TZ=Asia/Shanghai
|
|
||||||
- RUSTDESK_API_RUSTDESK_ID_SERVER=\${RELAY_SERVER}:21116
|
|
||||||
- RUSTDESK_API_RUSTDESK_RELAY_SERVER=\${RELAY_SERVER}:21117
|
|
||||||
- RUSTDESK_API_RUSTDESK_API_SERVER=http://\${RELAY_SERVER}:21114
|
|
||||||
- RUSTDESK_API_KEY_FILE=/data/id_ed25519.pub
|
|
||||||
- RUSTDESK_API_JWT_KEY=\${JWT_KEY}
|
|
||||||
volumes:
|
volumes:
|
||||||
- ./server:/data
|
- ./server:/root
|
||||||
- ./api:/app/data
|
|
||||||
- ./keys/id_ed25519:/data/id_ed25519:ro
|
|
||||||
- ./keys/id_ed25519.pub:/data/id_ed25519.pub:ro
|
|
||||||
networks:
|
|
||||||
- rustdesk-net
|
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
@@ -93,66 +62,19 @@ networks:
|
|||||||
driver: bridge
|
driver: bridge
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# 创建管理脚本
|
# 检测IP
|
||||||
cat > start.sh << 'EOF'
|
RELAY_SERVER=$(curl -s --connect-timeout 5 http://ipinfo.io/ip || curl -s --connect-timeout 5 http://ifconfig.me || hostname -I | awk '{print $1}')
|
||||||
#!/bin/bash
|
echo "RELAY_SERVER=$RELAY_SERVER" > .env
|
||||||
cd "$(dirname "$0")"
|
|
||||||
docker-compose up -d
|
|
||||||
echo "RustDesk服务器已启动"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
cat > stop.sh << 'EOF'
|
echo "验证密钥文件:"
|
||||||
#!/bin/bash
|
ls -la server/
|
||||||
cd "$(dirname "$0")"
|
|
||||||
docker-compose down
|
|
||||||
echo "RustDesk服务器已停止"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
cat > restart.sh << 'EOF'
|
echo "启动服务..."
|
||||||
#!/bin/bash
|
|
||||||
cd "$(dirname "$0")"
|
|
||||||
docker-compose restart
|
|
||||||
echo "RustDesk服务器已重启"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
chmod +x start.sh stop.sh restart.sh
|
|
||||||
|
|
||||||
# 创建密钥分发脚本
|
|
||||||
cat > share-keys.sh << 'EOF'
|
|
||||||
#!/bin/bash
|
|
||||||
echo "========================================"
|
|
||||||
echo " 统一密钥分发信息"
|
|
||||||
echo "========================================"
|
|
||||||
echo "公钥内容:"
|
|
||||||
cat keys/id_ed25519.pub
|
|
||||||
echo -e "\n公钥文件: keys/id_ed25519.pub"
|
|
||||||
echo "私钥文件: keys/id_ed25519"
|
|
||||||
echo -e "\n在其他服务器部署时,请复制整个 keys 目录"
|
|
||||||
echo "或手动创建相同的密钥文件"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
chmod +x share-keys.sh
|
|
||||||
|
|
||||||
# 启动服务
|
|
||||||
echo "启动RustDesk服务..."
|
|
||||||
docker-compose up -d
|
docker-compose up -d
|
||||||
|
|
||||||
# 显示部署信息
|
sleep 5
|
||||||
echo "========================================"
|
echo "服务状态:"
|
||||||
echo " 部署完成!"
|
docker-compose ps
|
||||||
echo "========================================"
|
|
||||||
echo "服务器地址: $RELAY_SERVER"
|
echo "查看密钥相关日志:"
|
||||||
echo "ID服务器: $RELAY_SERVER:21116"
|
docker-compose logs | grep -i key
|
||||||
echo "中继服务器: $RELAY_SERVER:21117"
|
|
||||||
echo "API服务器: http://$RELAY_SERVER:21114"
|
|
||||||
echo ""
|
|
||||||
echo "统一公钥:"
|
|
||||||
cat keys/id_ed25519.pub
|
|
||||||
echo ""
|
|
||||||
echo "管理命令:"
|
|
||||||
echo "启动: ./start.sh"
|
|
||||||
echo "停止: ./stop.sh"
|
|
||||||
echo "重启: ./restart.sh"
|
|
||||||
echo "密钥信息: ./share-keys.sh"
|
|
||||||
echo ""
|
|
||||||
echo "要在其他服务器使用相同密钥,请复制 keys 目录"
|
|
||||||
|
|||||||
Reference in New Issue
Block a user