termux-connecting 1.1.44 → 1.1.46
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/termux-connect-pc +7 -7
- package/bin/termux-connecting +99 -6
- package/package.json +1 -1
package/bin/termux-connect-pc
CHANGED
|
@@ -167,7 +167,7 @@ cmd_connection() {
|
|
|
167
167
|
local connected=false
|
|
168
168
|
|
|
169
169
|
# Key-based
|
|
170
|
-
if run_timeout
|
|
170
|
+
if run_timeout 15 ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ConnectTimeout=10 -o ServerAliveInterval=15 -o BatchMode=yes -p "$SSH_PORT" "${SSH_USER}@${SSH_HOST}" "echo connected"; then
|
|
171
171
|
info "Koneksi berhasil (key-based)"
|
|
172
172
|
connected=true
|
|
173
173
|
# Password via sshpass
|
|
@@ -175,7 +175,7 @@ cmd_connection() {
|
|
|
175
175
|
echo " SSH key tidak dikenali. Coba dengan password..."
|
|
176
176
|
local pass
|
|
177
177
|
pass=$(prompt " ➤ Password SSH" "")
|
|
178
|
-
if run_timeout
|
|
178
|
+
if run_timeout 15 sshpass -p "$pass" ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 -o ServerAliveInterval=15 -p "$SSH_PORT" "${SSH_USER}@${SSH_HOST}" "echo connected"; then
|
|
179
179
|
info "Koneksi berhasil (password)"
|
|
180
180
|
connected=true
|
|
181
181
|
fi
|
|
@@ -187,7 +187,7 @@ cmd_connection() {
|
|
|
187
187
|
echo " ssh -p ${SSH_PORT} ${SSH_USER}@${SSH_HOST}"
|
|
188
188
|
echo ""
|
|
189
189
|
echo -n " ➤ Setelah berhasil, tekan enter untuk lanjut..."; read -r
|
|
190
|
-
if run_timeout
|
|
190
|
+
if run_timeout 15 ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ConnectTimeout=10 -o ServerAliveInterval=15 -o BatchMode=yes -p "$SSH_PORT" "${SSH_USER}@${SSH_HOST}" "echo connected"; then
|
|
191
191
|
connected=true
|
|
192
192
|
fi
|
|
193
193
|
fi
|
|
@@ -228,11 +228,11 @@ cmd_connection() {
|
|
|
228
228
|
echo " Meng-copy public key ke HP..."
|
|
229
229
|
local copy_ok=false
|
|
230
230
|
if command -v sshpass >/dev/null && [ -n "$pass" ]; then
|
|
231
|
-
if run_timeout 15 sshpass -p "$pass" ssh-copy-id -i "$SSH_KEY" -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ConnectTimeout=10 -p "$SSH_PORT" "${SSH_USER}@${SSH_HOST}"; then
|
|
231
|
+
if run_timeout 15 sshpass -p "$pass" ssh-copy-id -i "$SSH_KEY" -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ConnectTimeout=10 -o ServerAliveInterval=15 -p "$SSH_PORT" "${SSH_USER}@${SSH_HOST}"; then
|
|
232
232
|
copy_ok=true
|
|
233
233
|
fi
|
|
234
234
|
else
|
|
235
|
-
if run_timeout 15 ssh-copy-id -i "$SSH_KEY" -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ConnectTimeout=10 -p "$SSH_PORT" "${SSH_USER}@${SSH_HOST}"; then
|
|
235
|
+
if run_timeout 15 ssh-copy-id -i "$SSH_KEY" -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ConnectTimeout=10 -o ServerAliveInterval=15 -p "$SSH_PORT" "${SSH_USER}@${SSH_HOST}"; then
|
|
236
236
|
copy_ok=true
|
|
237
237
|
fi
|
|
238
238
|
fi
|
|
@@ -369,11 +369,11 @@ cmd_check() {
|
|
|
369
369
|
echo "Device: ${ACTIVE_DEVICE} (${SSH_USER}@${SSH_HOST}:${SSH_PORT})"
|
|
370
370
|
echo ""
|
|
371
371
|
|
|
372
|
-
if run_timeout
|
|
372
|
+
if run_timeout 15 ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ConnectTimeout=10 -o ServerAliveInterval=15 -o BatchMode=yes "$ACTIVE_DEVICE" "echo connected" 2>/dev/null; then
|
|
373
373
|
info "Koneksi OK"
|
|
374
374
|
echo ""
|
|
375
375
|
info "Gunakan ssh $ACTIVE_DEVICE untuk koneksi"
|
|
376
|
-
elif run_timeout
|
|
376
|
+
elif run_timeout 15 ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ConnectTimeout=10 -o ServerAliveInterval=15 -o PasswordAuthentication=no "$ACTIVE_DEVICE" "echo connected" 2>/dev/null; then
|
|
377
377
|
info "Koneksi OK (key-based)"
|
|
378
378
|
echo ""
|
|
379
379
|
warn "Key $SSH_KEY memiliki passphrase. Agar tidak ditanya tiap kali:"
|
package/bin/termux-connecting
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/data/data/com.termux/files/usr/bin/bash
|
|
2
2
|
set -e
|
|
3
3
|
|
|
4
|
-
VERSION="1.1.
|
|
4
|
+
VERSION="1.1.46"
|
|
5
5
|
|
|
6
6
|
GREEN='\033[0;32m'; YELLOW='\033[1;33m'; RED='\033[0;31m'; CYAN='\033[0;36m'; NC='\033[0m'
|
|
7
7
|
info() { echo -e "${GREEN}[✓]${NC} $1"; }
|
|
@@ -11,15 +11,37 @@ title() { echo -e "\n${CYAN}━━━ $1 ━━━${NC}\n"; }
|
|
|
11
11
|
|
|
12
12
|
AUTO=false
|
|
13
13
|
CHECK=false
|
|
14
|
+
MONITOR=false
|
|
15
|
+
HELP=false
|
|
14
16
|
DEBUG=false
|
|
15
17
|
for arg in "$@"; do
|
|
16
18
|
[ "$arg" = "-y" ] && AUTO=true
|
|
17
19
|
[ "$arg" = "--check" ] || [ "$arg" = "--status" ] && CHECK=true
|
|
20
|
+
[ "$arg" = "--monitor" ] && MONITOR=true
|
|
21
|
+
[ "$arg" = "--help" ] || [ "$arg" = "-h" ] && HELP=true
|
|
18
22
|
[ "$arg" = "--debug" ] && DEBUG=true
|
|
19
23
|
done
|
|
20
24
|
|
|
21
25
|
$DEBUG && set -x
|
|
22
26
|
|
|
27
|
+
if $HELP; then
|
|
28
|
+
echo ""
|
|
29
|
+
title "TERMUX CONNECTING v${VERSION} — Bantuan"
|
|
30
|
+
echo " Penggunaan: termux-connecting [opsi]"
|
|
31
|
+
echo ""
|
|
32
|
+
echo " Opsi:"
|
|
33
|
+
echo " (tanpa opsi) Jalankan setup interaktif"
|
|
34
|
+
echo " -y Setup otomatis (skip konfirmasi)"
|
|
35
|
+
echo " --check, --status Tampilkan status SSH & jaringan"
|
|
36
|
+
echo " --monitor Mode realtime monitoring (auto-restart sshd)"
|
|
37
|
+
echo " --help, -h Tampilkan bantuan ini"
|
|
38
|
+
echo " --debug Aktifkan tracing (set -x)"
|
|
39
|
+
echo ""
|
|
40
|
+
echo " Subcommand (PC): termux-connect-pc --help"
|
|
41
|
+
echo ""
|
|
42
|
+
exit 0
|
|
43
|
+
fi
|
|
44
|
+
|
|
23
45
|
# ─── Mode: Check/Status ───
|
|
24
46
|
if $CHECK; then
|
|
25
47
|
echo ""
|
|
@@ -78,6 +100,70 @@ if $CHECK; then
|
|
|
78
100
|
exit 0
|
|
79
101
|
fi
|
|
80
102
|
|
|
103
|
+
# ─── Mode: Monitor ───
|
|
104
|
+
monitor_loop() {
|
|
105
|
+
local version="$VERSION"
|
|
106
|
+
local interval=5
|
|
107
|
+
|
|
108
|
+
echo ""
|
|
109
|
+
info "Mode monitoring aktif. Ketik 'exit' untuk keluar."
|
|
110
|
+
sleep 1
|
|
111
|
+
|
|
112
|
+
set +e
|
|
113
|
+
while true; do
|
|
114
|
+
local now=$(date '+%H:%M:%S')
|
|
115
|
+
local uptime_str=$(uptime -p 2>/dev/null | sed 's/^up //')
|
|
116
|
+
local ip=""
|
|
117
|
+
local sshd_pid=""
|
|
118
|
+
|
|
119
|
+
for iface in wlan0 eth0; do
|
|
120
|
+
ip=$(timeout 2 ip -4 addr show $iface 2>/dev/null | awk '/inet /{print $2}' | cut -d/ -f1)
|
|
121
|
+
[ -n "$ip" ] && break
|
|
122
|
+
done
|
|
123
|
+
if [ -z "$ip" ]; then
|
|
124
|
+
ip=$(timeout 2 ip route get 1.1.1.1 2>/dev/null | awk '{print $7}')
|
|
125
|
+
fi
|
|
126
|
+
ip="${ip:-❌ Tidak ada IP}"
|
|
127
|
+
|
|
128
|
+
if pgrep -x sshd >/dev/null; then
|
|
129
|
+
sshd_pid=$(pgrep -x sshd | head -1)
|
|
130
|
+
local sshd_uptime=$(ps -o etime= -p "$sshd_pid" 2>/dev/null | xargs)
|
|
131
|
+
local sshd_label="${sshd_pid} (${sshd_uptime})"
|
|
132
|
+
else
|
|
133
|
+
sshd_label="❌ Mati — restart..."
|
|
134
|
+
sshd 2>/dev/null
|
|
135
|
+
fi
|
|
136
|
+
|
|
137
|
+
local connections=$(ss -tnp 2>/dev/null | grep -c ':8022.*ESTAB' 2>/dev/null || echo 0)
|
|
138
|
+
|
|
139
|
+
clear 2>/dev/null || printf "\033c"
|
|
140
|
+
echo ""
|
|
141
|
+
echo " ╔══════════════════════════════════════════╗"
|
|
142
|
+
echo " ║ TERMUX CONNECTING — MONITOR v${VERSION} ║"
|
|
143
|
+
echo " ╠══════════════════════════════════════════╣"
|
|
144
|
+
printf " ║ ⏱ %-36s ║\n" "Waktu : $now"
|
|
145
|
+
printf " ║ ⏱ %-36s ║\n$([[ "$uptime_str" != "" ]] && echo " ║ Uptime : $uptime_str")"
|
|
146
|
+
printf " ║ 🔑 %-36s ║\n" "SSHD PID : $sshd_label"
|
|
147
|
+
printf " ║ 🌐 %-36s ║\n$([[ "$ip" != "" ]] && echo " ║ IP : $ip")"
|
|
148
|
+
printf " ║ 🔗 %-36s ║\n" "Koneksi : $connections aktif"
|
|
149
|
+
echo " ╠══════════════════════════════════════════╣"
|
|
150
|
+
echo " ║ Ketik 'exit' lalu Enter untuk keluar ║"
|
|
151
|
+
echo " ╚══════════════════════════════════════════╝"
|
|
152
|
+
|
|
153
|
+
read -t "$interval" input
|
|
154
|
+
[ "$input" = "exit" ] && break
|
|
155
|
+
done
|
|
156
|
+
|
|
157
|
+
echo ""
|
|
158
|
+
info "Monitoring dihentikan"
|
|
159
|
+
set -e
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
if $MONITOR; then
|
|
163
|
+
monitor_loop
|
|
164
|
+
exit 0
|
|
165
|
+
fi
|
|
166
|
+
|
|
81
167
|
confirm() {
|
|
82
168
|
local msg="$1" default="$2"
|
|
83
169
|
$AUTO && return 0
|
|
@@ -105,14 +191,19 @@ if [ ! -f "$WELCOME_FILE" ]; then
|
|
|
105
191
|
echo -e "${CYAN}Di PC/Mac, jalankan:${NC}"
|
|
106
192
|
echo " termux-connect-pc"
|
|
107
193
|
echo ""
|
|
194
|
+
echo -e "${CYAN}Opsi termux-connecting (HP):${NC}"
|
|
195
|
+
echo " termux-connecting Setup interaktif"
|
|
196
|
+
echo " termux-connecting -y Setup otomatis (skip konfirmasi)"
|
|
197
|
+
echo " termux-connecting --check Cek status SSH & jaringan"
|
|
198
|
+
echo " termux-connecting --monitor Realtime monitoring + auto-restart"
|
|
199
|
+
echo " termux-connecting --help Bantuan"
|
|
200
|
+
echo ""
|
|
108
201
|
echo -e "${CYAN}Subcommand PC:${NC}"
|
|
109
202
|
echo " termux-connect-pc connection Setup/ubah koneksi"
|
|
110
203
|
echo " termux-connect-pc check Cek koneksi & kirim alert Telegram"
|
|
111
204
|
echo " termux-connect-pc help Bantuan"
|
|
112
205
|
echo " termux-connect-pc version Versi"
|
|
113
206
|
echo ""
|
|
114
|
-
echo -e "${YELLOW}Gunakan -y untuk skip semua konfirmasi: termux-connecting -y${NC}"
|
|
115
|
-
echo ""
|
|
116
207
|
mkdir -p "$HOME/.config/termux-connecting"
|
|
117
208
|
touch "$WELCOME_FILE"
|
|
118
209
|
fi
|
|
@@ -305,6 +396,7 @@ if [ "$AUTO" = "false" ]; then
|
|
|
305
396
|
echo " 3) Status SSH server"
|
|
306
397
|
echo " 4) Tampilkan ulang info koneksi"
|
|
307
398
|
echo " 5) Cek permission & fitur"
|
|
399
|
+
echo " 6) Realtime monitoring"
|
|
308
400
|
echo ""
|
|
309
401
|
echo -n " Pilih [1]: "
|
|
310
402
|
read -r post_choice
|
|
@@ -339,9 +431,9 @@ if [ "$AUTO" = "false" ]; then
|
|
|
339
431
|
command -v termux-wake-lock >/dev/null 2>&1 && HAS_WAKE="yes"
|
|
340
432
|
title "Status Permission & Fitur"
|
|
341
433
|
echo " ┌─────────────────────────────────────────────┐"
|
|
342
|
-
[ "$HAS_STORAGE" = "yes" ] && echo
|
|
343
|
-
|
|
344
|
-
|
|
434
|
+
echo " │ ✅ Storage — akses penyimpanan │" | sed "s/✅/$([ "$HAS_STORAGE" = "yes" ] && echo '✅' || echo '❌')/"
|
|
435
|
+
echo " │ ✅ Termux:Boot — auto-start sshd │" | sed "s/✅/$([ "$HAS_BOOT" = "yes" ] && echo '✅' || echo '❌')/"
|
|
436
|
+
echo " │ ✅ Wake lock — koneksi tetap saat mati layar │" | sed "s/✅/$([ "$HAS_WAKE" = "yes" ] && echo '✅' || echo '❌')/"
|
|
345
437
|
echo " └─────────────────────────────────────────────┘"
|
|
346
438
|
echo ""
|
|
347
439
|
if [ "$HAS_STORAGE" = "no" ] && confirm " Setup storage permission" "y"; then termux-setup-storage; echo " Izininkan pop-up permission di Android"; echo ""; fi
|
|
@@ -349,6 +441,7 @@ if [ "$AUTO" = "false" ]; then
|
|
|
349
441
|
if [ "$HAS_BOOT" = "no" ] && confirm " Setup auto-start sshd (Termux:Boot)" "y"; then mkdir -p "$HOME/.termux/boot"; echo 'sshd' > "$HOME/.termux/boot/boot-sshd"; chmod +x "$HOME/.termux/boot/boot-sshd"; info "Boot script: ~/.termux/boot/boot-sshd"; echo " https://f-droid.org/packages/com.termux.boot/"; echo " Reboot HP agar sshd jalan otomatis"; echo ""; fi
|
|
350
442
|
[ "$HAS_WAKE" = "yes" ] && termux-wake-lock 2>/dev/null && info "Wake lock aktif"
|
|
351
443
|
;;
|
|
444
|
+
6) monitor_loop ;;
|
|
352
445
|
*) break ;;
|
|
353
446
|
esac
|
|
354
447
|
done
|