Przeglądaj źródła

修改ssh问题

Gogs 6 dni temu
rodzic
commit
cb07e61f15
1 zmienionych plików z 12 dodań i 5 usunięć
  1. 12 5
      scripts/start-transparent.sh

+ 12 - 5
scripts/start-transparent.sh

@@ -44,16 +44,23 @@ LOG_MAX_MB="${MYNETSPEEDER_LOG_MAX_MB:-50}"
 LOG_BACKUPS="${MYNETSPEEDER_LOG_BACKUPS:-3}"
 CHAIN4="MYNETSPEEDER"
 CHAIN6="MYNETSPEEDER6"
-SSH_PORTS="${MYNETSPEEDER_SSH_PORTS:-22}"
+SSH_PORTS="${MYNETSPEEDER_SSH_PORTS:-}"
 
 if [[ $EUID -ne 0 ]]; then echo "need root"; exit 1; fi
 if [[ ! -f "$CONFIG_PATH" ]]; then echo "config not found: $CONFIG_PATH"; exit 1; fi
 if [[ -n "$CAPTURE_UID" ]] && ! [[ "$CAPTURE_UID" =~ ^[0-9]+$ ]]; then echo "capture uid must be numeric"; exit 1; fi
 
-IFS=',' read -r -a SSH_PORT_ARRAY <<< "$SSH_PORTS"
-for ssh_port in "${SSH_PORT_ARRAY[@]}"; do
-  [[ "$ssh_port" =~ ^[0-9]+$ ]] || { echo "ssh ports must be numeric, got: $ssh_port"; exit 1; }
-done
+if [[ -z "$SSH_PORTS" && -n "${SSH_CONNECTION:-}" ]]; then
+  SSH_PORTS="${SSH_CONNECTION##* }"
+fi
+
+SSH_PORT_ARRAY=()
+if [[ -n "$SSH_PORTS" ]]; then
+  IFS=',' read -r -a SSH_PORT_ARRAY <<< "$SSH_PORTS"
+  for ssh_port in "${SSH_PORT_ARRAY[@]}"; do
+    [[ "$ssh_port" =~ ^[0-9]+$ ]] || { echo "ssh ports must be numeric, got: $ssh_port"; exit 1; }
+  done
+fi
 
 id -u "$RUNTIME_USER" >/dev/null 2>&1 || useradd --system --no-create-home --shell /usr/sbin/nologin "$RUNTIME_USER"
 mkdir -p /var/log