@@ -1908,88 +1908,6 @@ SOCKS_PASS=""
19081908SOCKS_AUTH=false
19091909TUNNELS_CHANGED=false
19101910
1911- # ─── Parse Arguments ────────────────────────────────────────────────────────────
1912-
1913- ADD_DOMAIN_MODE=false
1914- HARDEN_ONLY_MODE=false
1915- MANAGE_USERS_MODE=false
1916- DNSTT_MTU=1232
1917-
1918- while [[ $# -gt 0 ]]; do
1919- case " $1 " in
1920- --help|-h)
1921- show_help
1922- exit 0
1923- ;;
1924- --about)
1925- show_about
1926- exit 0
1927- ;;
1928- --status)
1929- do_status
1930- exit 0
1931- ;;
1932- --manage)
1933- do_manage
1934- exit 0
1935- ;;
1936- --uninstall)
1937- do_uninstall
1938- exit 0
1939- ;;
1940- --remove-tunnel)
1941- # If $2 looks like another flag (starts with --), treat as no tag given
1942- if [[ -n " ${2:- } " && " ${2: 0: 2} " != " --" ]]; then
1943- do_remove_tunnel " $2 "
1944- else
1945- do_remove_tunnel " "
1946- fi
1947- exit 0
1948- ;;
1949- --add-tunnel)
1950- do_add_tunnel
1951- exit 0
1952- ;;
1953- --add-domain)
1954- ADD_DOMAIN_MODE=true
1955- shift
1956- ;;
1957- --users)
1958- MANAGE_USERS_MODE=true
1959- shift
1960- ;;
1961- --harden)
1962- HARDEN_ONLY_MODE=true
1963- shift
1964- ;;
1965- --mtu)
1966- if [[ -n " ${2:- } " ]] && [[ " $2 " =~ ^[0-9]+$ ]] && [[ " $2 " -ge 512 ]] && [[ " $2 " -le 1400 ]]; then
1967- DNSTT_MTU=" $2 "
1968- shift 2
1969- else
1970- echo " Error: --mtu requires a value between 512 and 1400"
1971- exit 1
1972- fi
1973- ;;
1974- * )
1975- echo " Unknown option: $1 "
1976- echo " Use --help for usage information."
1977- exit 1
1978- ;;
1979- esac
1980- done
1981-
1982- # ─── Validate conflicting flags ──────────────────────────────────────────────────
1983-
1984- mode_count=0
1985- [[ " $ADD_DOMAIN_MODE " == true ]] && (( mode_count++ ))
1986- [[ " $HARDEN_ONLY_MODE " == true ]] && (( mode_count++ ))
1987- [[ " $MANAGE_USERS_MODE " == true ]] && (( mode_count++ ))
1988- if [[ $mode_count -gt 1 ]]; then
1989- echo " Error: --add-domain, --harden, and --users cannot be combined."
1990- exit 1
1991- fi
1992-
19931911# ─── Variables (populated during setup) ─────────────────────────────────────────
19941912
19951913SSH_SETUP_DONE=false
@@ -2964,9 +2882,16 @@ step_summary() {
29642882 echo " "
29652883
29662884 if [[ -n " $DNSTT_PUBKEY " ]]; then
2967- echo -e " ${BOLD} DNSTT Public Key ${NC} "
2885+ echo -e " ${BOLD} DNSTT Public Keys ${NC} "
29682886 echo -e " ${DIM} ────────────────────────────────────────${NC} "
2969- echo -e " ${GREEN}${DNSTT_PUBKEY}${NC} "
2887+ echo -e " ${GREEN} dnstt1 (SOCKS):${NC} ${DNSTT_PUBKEY} "
2888+ local _dnstt_ssh_pk=" "
2889+ if [[ -f /etc/dnstm/tunnels/dnstt-ssh/server.pub ]]; then
2890+ _dnstt_ssh_pk=$( cat /etc/dnstm/tunnels/dnstt-ssh/server.pub 2> /dev/null || true)
2891+ fi
2892+ if [[ -n " $_dnstt_ssh_pk " ]]; then
2893+ echo -e " ${GREEN} dnstt-ssh (SSH):${NC} ${_dnstt_ssh_pk} "
2894+ fi
29702895 echo " "
29712896 fi
29722897
@@ -3011,8 +2936,13 @@ step_summary() {
30112936 if [[ " $SSH_SETUP_DONE " == true && -n " $SSH_USER " && -n " $SSH_PASS " ]]; then
30122937 slipnet_url=$( generate_slipnet_url " slipstream_ssh" " s2" " " " $SSH_USER " " $SSH_PASS " " $s_user " " $s_pass " )
30132938 echo -e " ${GREEN} slip-ssh:${NC} ${slipnet_url} "
3014- if [[ -n " $DNSTT_PUBKEY " ]]; then
3015- slipnet_url=$( generate_slipnet_url " dnstt_ssh" " ds2" " $DNSTT_PUBKEY " " $SSH_USER " " $SSH_PASS " " $s_user " " $s_pass " )
2939+ # dnstt-ssh has its own keypair — read from its own tunnel dir
2940+ local dnstt_ssh_pubkey=" "
2941+ if [[ -f /etc/dnstm/tunnels/dnstt-ssh/server.pub ]]; then
2942+ dnstt_ssh_pubkey=$( cat /etc/dnstm/tunnels/dnstt-ssh/server.pub 2> /dev/null || true)
2943+ fi
2944+ if [[ -n " $dnstt_ssh_pubkey " ]]; then
2945+ slipnet_url=$( generate_slipnet_url " dnstt_ssh" " ds2" " $dnstt_ssh_pubkey " " $SSH_USER " " $SSH_PASS " " $s_user " " $s_pass " )
30162946 echo -e " ${GREEN} dnstt-ssh:${NC} ${slipnet_url} "
30172947 fi
30182948 fi
@@ -3354,9 +3284,16 @@ do_add_domain() {
33543284 echo " "
33553285
33563286 if [[ -n " $DNSTT_PUBKEY " ]]; then
3357- echo -e " ${BOLD} DNSTT Public Key ${NC} "
3287+ echo -e " ${BOLD} DNSTT Public Keys ${NC} "
33583288 echo -e " ${DIM} ────────────────────────────────────────${NC} "
3359- echo -e " ${GREEN}${DNSTT_PUBKEY}${NC} "
3289+ echo -e " ${GREEN}${dnstt_tag} (SOCKS):${NC} ${DNSTT_PUBKEY} "
3290+ local _dnstt_ssh_pk=" "
3291+ if [[ -f " /etc/dnstm/tunnels/${dnstt_ssh_tag} /server.pub" ]]; then
3292+ _dnstt_ssh_pk=$( cat " /etc/dnstm/tunnels/${dnstt_ssh_tag} /server.pub" 2> /dev/null || true)
3293+ fi
3294+ if [[ -n " $_dnstt_ssh_pk " ]]; then
3295+ echo -e " ${GREEN}${dnstt_ssh_tag} (SSH):${NC} ${_dnstt_ssh_pk} "
3296+ fi
33603297 echo " "
33613298 fi
33623299
@@ -3391,12 +3328,95 @@ do_add_domain() {
33913328 slipnet_url=$( generate_slipnet_url " dnstt" " d2" " $DNSTT_PUBKEY " " " " " " $s_user " " $s_pass " )
33923329 echo -e " ${GREEN}${dnstt_tag} :${NC} ${slipnet_url} "
33933330 fi
3331+ echo -e " ${DIM} SSH tunnel slipnet:// URLs require credentials. Use --manage → Manage SSH users first.${NC} "
33943332 echo " "
33953333
33963334 echo -e " ${DIM} To add more domains, run again: sudo bash $0 --add-domain${NC} "
33973335 echo " "
33983336}
33993337
3338+ # ─── Parse Arguments ────────────────────────────────────────────────────────────
3339+
3340+ ADD_DOMAIN_MODE=false
3341+ HARDEN_ONLY_MODE=false
3342+ MANAGE_USERS_MODE=false
3343+ DNSTT_MTU=1232
3344+
3345+ while [[ $# -gt 0 ]]; do
3346+ case " $1 " in
3347+ --help|-h)
3348+ show_help
3349+ exit 0
3350+ ;;
3351+ --about)
3352+ show_about
3353+ exit 0
3354+ ;;
3355+ --status)
3356+ do_status
3357+ exit 0
3358+ ;;
3359+ --manage)
3360+ do_manage
3361+ exit 0
3362+ ;;
3363+ --uninstall)
3364+ do_uninstall
3365+ exit 0
3366+ ;;
3367+ --remove-tunnel)
3368+ # If $2 looks like another flag (starts with --), treat as no tag given
3369+ if [[ -n " ${2:- } " && " ${2: 0: 2} " != " --" ]]; then
3370+ do_remove_tunnel " $2 "
3371+ else
3372+ do_remove_tunnel " "
3373+ fi
3374+ exit 0
3375+ ;;
3376+ --add-tunnel)
3377+ do_add_tunnel
3378+ exit 0
3379+ ;;
3380+ --add-domain)
3381+ ADD_DOMAIN_MODE=true
3382+ shift
3383+ ;;
3384+ --users)
3385+ MANAGE_USERS_MODE=true
3386+ shift
3387+ ;;
3388+ --harden)
3389+ HARDEN_ONLY_MODE=true
3390+ shift
3391+ ;;
3392+ --mtu)
3393+ if [[ -n " ${2:- } " ]] && [[ " $2 " =~ ^[0-9]+$ ]] && [[ " $2 " -ge 512 ]] && [[ " $2 " -le 1400 ]]; then
3394+ DNSTT_MTU=" $2 "
3395+ shift 2
3396+ else
3397+ echo " Error: --mtu requires a value between 512 and 1400"
3398+ exit 1
3399+ fi
3400+ ;;
3401+ * )
3402+ echo " Unknown option: $1 "
3403+ echo " Use --help for usage information."
3404+ exit 1
3405+ ;;
3406+ esac
3407+ done
3408+
3409+ # ─── Validate conflicting flags ──────────────────────────────────────────────────
3410+
3411+ mode_count=0
3412+ [[ " $ADD_DOMAIN_MODE " == true ]] && (( mode_count++ ))
3413+ [[ " $HARDEN_ONLY_MODE " == true ]] && (( mode_count++ ))
3414+ [[ " $MANAGE_USERS_MODE " == true ]] && (( mode_count++ ))
3415+ if [[ $mode_count -gt 1 ]]; then
3416+ echo " Error: --add-domain, --harden, and --users cannot be combined."
3417+ exit 1
3418+ fi
3419+
34003420# ─── Main ───────────────────────────────────────────────────────────────────────
34013421
34023422main () {
0 commit comments