From f37d77656c3514fb9905a0d17205fdc2bb1169d8 Mon Sep 17 00:00:00 2001 From: Petro1990 Date: Fri, 13 Mar 2026 14:43:48 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5:=20=D1=81=D0=BE=D0=B2=D0=BC=D0=B5?= =?UTF-8?q?=D1=81=D1=82=D0=B8=D0=BC=D0=BE=D1=81=D1=82=D1=8C=20ssh-keygen?= =?UTF-8?q?=20=D1=81=20Dropbear=20=D0=B8=20=D1=84=D0=B8=D0=BA=D1=81=20?= =?UTF-8?q?=D1=81=D0=BE=D0=B7=D0=B4=D0=B0=D0=BD=D0=B8=D1=8F=20=D0=B8=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=BF=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F=20=D0=BF=D1=83=D0=B1=D0=BB=D0=B8=D1=87=D0=BD=D0=BE=D0=B3?= =?UTF-8?q?=D0=BE=20=D0=BA=D0=BB=D1=8E=D1=87=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rproxy | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/rproxy b/rproxy index 4bb49f6..4dcdb11 100644 --- a/rproxy +++ b/rproxy @@ -689,8 +689,28 @@ do_setup() { if [ ! -f "$SSH_KEY" ]; then msg "Генерирую SSH-ключ..." mkdir -p "$CONF_DIR" - ssh-keygen -t rsa -b 4096 -f "$SSH_KEY" -N "" -q - msg "Ключ создан: $SSH_KEY" + # Попытка с универсальными параметрами + if ! ssh-keygen -t rsa -b 2048 -f "$SSH_KEY" -N "" -q 2>/dev/null; then + # Попытка для Dropbear (использует -s вместо -b) + if ! ssh-keygen -t rsa -s 2048 -f "$SSH_KEY" -N "" 2>/dev/null; then + # Минимальный набор флагов + ssh-keygen -t rsa -f "$SSH_KEY" -N "" + fi + fi + + # Если .pub файл не создался автоматически (бывает в Dropbear), извлекаем его + if [ ! -f "$SSH_KEY.pub" ] && [ -f "$SSH_KEY" ]; then + ssh-keygen -y -f "$SSH_KEY" > "$SSH_KEY.pub" 2>/dev/null + fi + + if [ -f "$SSH_KEY" ]; then + chmod 600 "$SSH_KEY" + msg "Ключ создан: $SSH_KEY" + else + err "Не удалось создать SSH-ключ" + pause + return + fi fi fi @@ -706,10 +726,15 @@ do_setup() { fi else msg "Копирую SSH-ключ на VPS..." + if [ ! -f "$SSH_KEY.pub" ]; then + err "Публичный ключ не найден: $SSH_KEY.pub" + pause + return + fi printf " Введите пароль VPS для копирования ключа:\n" ssh-copy-id -i "$SSH_KEY.pub" -p "$vps_port" "$vps_user@$vps_host" 2>/dev/null || { - cat "$SSH_KEY.pub" | ssh -p "$vps_port" "$vps_user@$vps_host" \ - "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys" + cat "$SSH_KEY.pub" | ssh -o StrictHostKeyChecking=no -p "$vps_port" "$vps_user@$vps_host" \ + "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys" } if ! ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 \