feat: auto-extract tunnel token from full cloudflared install command
This commit is contained in:
parent
0115f54b04
commit
dbf7cc4a94
@ -57,6 +57,20 @@ SKIP_CLOUDFLARED=false
|
||||
ALLOW_ALL_PRINCIPALS=false
|
||||
DRY_RUN=false
|
||||
|
||||
# 从完整命令或纯 token 中提取 tunnel token
|
||||
# 支持输入: "sudo cloudflared service install eyJ..." 或直接 "eyJ..."
|
||||
extract_tunnel_token() {
|
||||
local input="$1"
|
||||
# 去掉首尾空白
|
||||
input="$(echo "$input" | xargs)"
|
||||
# 如果包含 "install",取最后一个参数作为 token
|
||||
if [[ "$input" == *"install "* ]]; then
|
||||
input="${input##*install }"
|
||||
input="$(echo "$input" | awk '{print $1}')"
|
||||
fi
|
||||
echo "$input"
|
||||
}
|
||||
|
||||
SSHD_CONFIG="/etc/ssh/sshd_config"
|
||||
CA_PUB_FILE="/etc/ssh/ca.pub"
|
||||
BACKUP_SUFFIX="bak.$(date +%Y%m%d_%H%M%S)"
|
||||
@ -66,7 +80,7 @@ while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
--ca-pubkey) CA_PUBKEY="$2"; shift 2 ;;
|
||||
--login-user) LOGIN_USER="$2"; shift 2 ;;
|
||||
--tunnel-token) TUNNEL_TOKEN="$2"; shift 2 ;;
|
||||
--tunnel-token) TUNNEL_TOKEN="$(extract_tunnel_token "$2")"; shift 2 ;;
|
||||
--skip-cloudflared) SKIP_CLOUDFLARED=true; shift ;;
|
||||
--allow-all-principals) ALLOW_ALL_PRINCIPALS=true; shift ;;
|
||||
--dry-run) DRY_RUN=true; shift ;;
|
||||
@ -143,13 +157,13 @@ prompt_missing_params() {
|
||||
echo -e " ${CYAN}Tunnel Token 获取方式:${NC}"
|
||||
echo " Cloudflare One → Networks → Tunnels → 选择/创建 Tunnel → Install connector"
|
||||
echo ""
|
||||
echo " 控制台会给你一条类似这样的命令:"
|
||||
echo " 直接把控制台给你的整条命令粘贴进来,脚本会自动提取 Token:"
|
||||
echo -e " ${GREEN}sudo cloudflared service install eyJhIjoiZDZjN2MwNT...${NC}"
|
||||
echo ""
|
||||
echo " 你只需要复制 eyJ 开头的那串 Token 粘贴到下面即可。"
|
||||
echo " (留空则跳过隧道服务注册,之后可手动执行)"
|
||||
echo " (也可以只粘贴 eyJ... Token 部分;留空则跳过隧道服务注册)"
|
||||
echo ""
|
||||
read -rp "请输入 Tunnel Token: " TUNNEL_TOKEN
|
||||
read -rp "请粘贴命令或 Token: " TUNNEL_TOKEN_RAW
|
||||
TUNNEL_TOKEN="$(extract_tunnel_token "$TUNNEL_TOKEN_RAW")"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user