исправление: совместимость ssh-keygen с Dropbear и фикс создания и копирования публичного ключа
This commit is contained in:
parent
0eca85b1a2
commit
f37d77656c
33
rproxy
33
rproxy
|
|
@ -689,8 +689,28 @@ do_setup() {
|
||||||
if [ ! -f "$SSH_KEY" ]; then
|
if [ ! -f "$SSH_KEY" ]; then
|
||||||
msg "Генерирую SSH-ключ..."
|
msg "Генерирую SSH-ключ..."
|
||||||
mkdir -p "$CONF_DIR"
|
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
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
@ -706,10 +726,15 @@ do_setup() {
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
msg "Копирую SSH-ключ на VPS..."
|
msg "Копирую SSH-ключ на VPS..."
|
||||||
|
if [ ! -f "$SSH_KEY.pub" ]; then
|
||||||
|
err "Публичный ключ не найден: $SSH_KEY.pub"
|
||||||
|
pause
|
||||||
|
return
|
||||||
|
fi
|
||||||
printf " Введите пароль VPS для копирования ключа:\n"
|
printf " Введите пароль VPS для копирования ключа:\n"
|
||||||
ssh-copy-id -i "$SSH_KEY.pub" -p "$vps_port" "$vps_user@$vps_host" 2>/dev/null || {
|
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" \
|
cat "$SSH_KEY.pub" | ssh -o StrictHostKeyChecking=no -p "$vps_port" "$vps_user@$vps_host" \
|
||||||
"mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
|
"mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"
|
||||||
}
|
}
|
||||||
|
|
||||||
if ! ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 \
|
if ! ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 \
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue