fix: make sshpass optional for architectures where it is missing
This commit is contained in:
parent
02a0536b11
commit
777133c13d
|
|
@ -57,7 +57,12 @@ install_pkg() {
|
|||
install_pkg "openssh-client"
|
||||
install_pkg "autossh"
|
||||
install_pkg "curl"
|
||||
install_pkg "sshpass"
|
||||
|
||||
# sshpass is optional (needed only for password auth, may be missing on some architectures)
|
||||
if ! opkg list-installed 2>/dev/null | grep -q "^sshpass "; then
|
||||
msg "Пытаюсь установить sshpass (необязательно)..."
|
||||
opkg install "sshpass" >/dev/null 2>&1 || warn "Пакет sshpass не найден. Авторизация по паролю будет недоступна (только по SSH-ключу)."
|
||||
fi
|
||||
|
||||
# ─── Download rproxy script ─────────────────────────────────────────
|
||||
msg "Скачиваю rproxy..."
|
||||
|
|
|
|||
25
rproxy
25
rproxy
|
|
@ -69,6 +69,11 @@ load_service() {
|
|||
|
||||
ssh_cmd() {
|
||||
if [ "$VPS_AUTH" = "password" ]; then
|
||||
if ! command -v sshpass >/dev/null 2>&1; then
|
||||
err "Утилита sshpass не найдена. Авторизация по паролю невозможна."
|
||||
err "Пожалуйста, перенастройте rProxy на использование SSH-ключа (rproxy setup)."
|
||||
return 1
|
||||
fi
|
||||
sshpass -p "$VPS_PASS" ssh -o StrictHostKeyChecking=no -p "$VPS_PORT" "$VPS_USER@$VPS_HOST" "$@"
|
||||
else
|
||||
ssh -o StrictHostKeyChecking=no -i "$SSH_KEY" -p "$VPS_PORT" "$VPS_USER@$VPS_HOST" "$@"
|
||||
|
|
@ -77,6 +82,10 @@ ssh_cmd() {
|
|||
|
||||
scp_cmd() {
|
||||
if [ "$VPS_AUTH" = "password" ]; then
|
||||
if ! command -v sshpass >/dev/null 2>&1; then
|
||||
err "Утилита sshpass не найдена. Копирование по паролю невозможно."
|
||||
return 1
|
||||
fi
|
||||
sshpass -p "$VPS_PASS" scp -o StrictHostKeyChecking=no -P "$VPS_PORT" "$@"
|
||||
else
|
||||
scp -o StrictHostKeyChecking=no -i "$SSH_KEY" -P "$VPS_PORT" "$@"
|
||||
|
|
@ -659,19 +668,21 @@ do_setup() {
|
|||
|
||||
if [ "$auth_choice" = "2" ]; then
|
||||
vps_auth="password"
|
||||
|
||||
if ! command -v sshpass >/dev/null 2>&1; then
|
||||
printf "\n ${RED}✖ Ошибка: Утилита sshpass не найдена в системе.${NC}\n"
|
||||
printf " Для вашего роутера этот пакет недоступен в репозитории.\n"
|
||||
printf " Пожалуйста, используйте авторизацию по SSH-ключу.\n"
|
||||
pause
|
||||
return
|
||||
fi
|
||||
|
||||
printf " SSH пароль: "
|
||||
stty -echo 2>/dev/null
|
||||
read -r vps_pass
|
||||
stty echo 2>/dev/null
|
||||
printf "\n"
|
||||
|
||||
if ! command -v sshpass >/dev/null 2>&1; then
|
||||
msg "Устанавливаю sshpass..."
|
||||
opkg install sshpass 2>/dev/null || {
|
||||
err "Не удалось установить sshpass. Установите вручную: opkg install sshpass"
|
||||
pause
|
||||
return
|
||||
}
|
||||
fi
|
||||
else
|
||||
if [ ! -f "$SSH_KEY" ]; then
|
||||
|
|
|
|||
Loading…
Reference in New Issue