termux-connecting 1.1.14 → 1.1.16
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 +134 -40
- package/package.json +1 -1
package/bin/termux-connect-pc
CHANGED
|
@@ -79,78 +79,147 @@ cmd_connection() {
|
|
|
79
79
|
local new_name="${1:-}"
|
|
80
80
|
load_active
|
|
81
81
|
|
|
82
|
-
# Jika ada argumen nama, setup device baru
|
|
83
82
|
if [ -n "$new_name" ]; then
|
|
84
83
|
HOST_ALIAS="$new_name"
|
|
85
84
|
fi
|
|
86
85
|
|
|
87
86
|
title "TERMUX CONNECT — Connection Setup"
|
|
87
|
+
echo "Saya akan bantu kamu menghubungkan PC ini ke Termux di HP."
|
|
88
|
+
echo ""
|
|
88
89
|
|
|
90
|
+
# ── Dialog: device baru atau edit existing ──
|
|
89
91
|
if [ -z "$new_name" ] && [ -n "$ACTIVE_DEVICE" ]; then
|
|
90
|
-
echo "
|
|
91
|
-
echo -n " Setup device baru? [y/N]: "
|
|
92
|
+
echo " Saat ini device aktif: $ACTIVE_DEVICE"
|
|
93
|
+
echo -n " ➤ Setup device baru? [y/N]: "
|
|
92
94
|
read -r new_dev
|
|
93
95
|
if [[ "$new_dev" =~ ^[Yy]$ ]]; then
|
|
94
|
-
|
|
96
|
+
echo ""
|
|
97
|
+
echo " Oke, kita akan setup HP lain."
|
|
98
|
+
new_name=$(prompt " ➤ Beri nama device ini" "")
|
|
95
99
|
HOST_ALIAS="$new_name"
|
|
96
100
|
else
|
|
97
|
-
# Edit device aktif
|
|
98
101
|
load_config || true
|
|
99
102
|
HOST_ALIAS="${ACTIVE_DEVICE}"
|
|
100
103
|
fi
|
|
101
104
|
fi
|
|
102
105
|
|
|
106
|
+
# ── Dialog: nama device ──
|
|
103
107
|
if [ -z "$HOST_ALIAS" ]; then
|
|
104
|
-
|
|
108
|
+
echo ""
|
|
109
|
+
echo " Beri nama untuk HP ini, misal 'hp-kantor' atau 'hp-rumah'."
|
|
110
|
+
HOST_ALIAS=$(prompt " ➤ Nama device" "termux-a8star")
|
|
105
111
|
fi
|
|
106
112
|
|
|
107
|
-
|
|
108
|
-
|
|
113
|
+
# ── Dialog: username ──
|
|
114
|
+
echo ""
|
|
115
|
+
echo " Sekarang kita perlu data login SSH."
|
|
116
|
+
echo " Username bisa dicek di Termux dengan perintah: whoami"
|
|
117
|
+
SSH_USER=$(prompt " ➤ Username" "${SSH_USER:-u0_a237}")
|
|
118
|
+
|
|
119
|
+
# ── Dialog: IP address ──
|
|
120
|
+
echo ""
|
|
121
|
+
echo " IP Address bisa dicek di Termux dengan: ip a | grep inet"
|
|
122
|
+
echo " Pastikan HP dan PC terhubung ke WiFi yang SAMA."
|
|
123
|
+
SSH_HOST=$(prompt " ➤ IP Address" "${SSH_HOST:-192.168.1.8}")
|
|
124
|
+
|
|
125
|
+
# ── Dialog: Port ──
|
|
126
|
+
echo ""
|
|
127
|
+
echo -n " ➤ Port SSH [8022]: "; read -r port
|
|
128
|
+
SSH_PORT="${port:-8022}"
|
|
109
129
|
|
|
130
|
+
# ── Konfirmasi ──
|
|
131
|
+
echo ""
|
|
132
|
+
echo " ┌──────────────────────────────────────┐"
|
|
133
|
+
echo " │ Device : $HOST_ALIAS"
|
|
134
|
+
echo " │ Login : ${SSH_USER}@${SSH_HOST}:${SSH_PORT}"
|
|
135
|
+
echo " └──────────────────────────────────────┘"
|
|
136
|
+
echo ""
|
|
137
|
+
echo -n " ➤ Lanjutkan koneksi? [Y/n]: "
|
|
138
|
+
read -r proceed
|
|
139
|
+
if [[ -n "$proceed" && ! "$proceed" =~ ^[Yy]$ ]]; then
|
|
140
|
+
echo " Baik, batalkan. Jalankan lagi saat siap."
|
|
141
|
+
return
|
|
142
|
+
fi
|
|
143
|
+
|
|
144
|
+
# ── Cek Konektifitas ──
|
|
110
145
|
title "1. Cek Konektifitas"
|
|
111
|
-
echo "Mencoba ke ${SSH_USER}@${SSH_HOST}:${SSH_PORT}..."
|
|
146
|
+
echo " Mencoba koneksi ke ${SSH_USER}@${SSH_HOST}:${SSH_PORT}..."
|
|
147
|
+
echo ""
|
|
112
148
|
|
|
113
149
|
local connected=false
|
|
150
|
+
|
|
151
|
+
# Key-based
|
|
114
152
|
if timeout 10 ssh -o ConnectTimeout=5 -o BatchMode=yes -p "$SSH_PORT" "${SSH_USER}@${SSH_HOST}" "echo connected"; then
|
|
115
153
|
info "Koneksi berhasil (key-based)"
|
|
116
154
|
connected=true
|
|
155
|
+
# Password via sshpass
|
|
117
156
|
elif command -v sshpass >/dev/null; then
|
|
157
|
+
echo " SSH key tidak dikenali. Coba dengan password..."
|
|
118
158
|
local pass
|
|
119
|
-
pass=$(prompt "Password SSH" "")
|
|
159
|
+
pass=$(prompt " ➤ Password SSH" "")
|
|
120
160
|
if timeout 10 sshpass -p "$pass" ssh -o StrictHostKeyChecking=no -o ConnectTimeout=5 -p "$SSH_PORT" "${SSH_USER}@${SSH_HOST}" "echo connected"; then
|
|
121
161
|
info "Koneksi berhasil (password)"
|
|
122
162
|
connected=true
|
|
123
163
|
fi
|
|
164
|
+
# Manual
|
|
124
165
|
else
|
|
125
166
|
echo ""
|
|
126
|
-
warn "sshpass tidak terinstall.
|
|
127
|
-
echo
|
|
167
|
+
warn " sshpass tidak terinstall."
|
|
168
|
+
echo " Silakan konek manual dari terminal lain:"
|
|
169
|
+
echo " ssh -p ${SSH_PORT} ${SSH_USER}@${SSH_HOST}"
|
|
170
|
+
echo ""
|
|
171
|
+
echo -n " ➤ Setelah berhasil, tekan enter untuk lanjut..."; read -r
|
|
128
172
|
if timeout 10 ssh -o ConnectTimeout=5 -o BatchMode=yes -p "$SSH_PORT" "${SSH_USER}@${SSH_HOST}" "echo connected"; then
|
|
129
173
|
connected=true
|
|
130
174
|
fi
|
|
131
175
|
fi
|
|
132
176
|
|
|
177
|
+
# ── Gagal total ──
|
|
133
178
|
if ! $connected; then
|
|
134
|
-
error "
|
|
135
|
-
echo "
|
|
179
|
+
error "Gagal terhubung ke ${SSH_USER}@${SSH_HOST}:${SSH_PORT}"
|
|
180
|
+
echo ""
|
|
181
|
+
echo " Pastikan:"
|
|
182
|
+
echo " 1. HP sudah menjalankan: sshd (di Termux)"
|
|
183
|
+
echo " 2. HP dan PC dalam jaringan WiFi yang SAMA"
|
|
184
|
+
echo " 3. IP dan username yang dimasukkan benar"
|
|
185
|
+
echo ""
|
|
186
|
+
echo " Coba lagi: termux-connect-pc connection"
|
|
136
187
|
return
|
|
137
188
|
fi
|
|
138
189
|
|
|
139
|
-
# SSH key
|
|
190
|
+
# ── Setup SSH key ──
|
|
191
|
+
title "2. Setup SSH Key (biar tanpa password)"
|
|
192
|
+
echo " Dengan SSH key, kamu tidak perlu input password setiap kali konek."
|
|
193
|
+
echo ""
|
|
194
|
+
|
|
140
195
|
if [ ! -f "$SSH_KEY" ]; then
|
|
141
|
-
echo ""
|
|
142
|
-
echo -n "Buat SSH key biar tanpa password? [Y/n]: "
|
|
196
|
+
echo -n " ➤ Buat SSH key sekarang? [Y/n]: "
|
|
143
197
|
read -r mk
|
|
144
198
|
if [[ -z "$mk" || "$mk" =~ ^[Yy]$ ]]; then
|
|
199
|
+
echo " Membuat SSH key..."
|
|
145
200
|
ssh-keygen -t ed25519 -f "$SSH_KEY" -N "" -C "termux-connect"
|
|
201
|
+
info "SSH key dibuat: $SSH_KEY"
|
|
146
202
|
fi
|
|
203
|
+
else
|
|
204
|
+
info "SSH key sudah ada: $SSH_KEY"
|
|
147
205
|
fi
|
|
206
|
+
|
|
148
207
|
if [ -f "$SSH_KEY" ]; then
|
|
149
|
-
|
|
150
|
-
|
|
208
|
+
echo ""
|
|
209
|
+
echo " Meng-copy public key ke HP..."
|
|
210
|
+
if timeout 15 ssh-copy-id -o StrictHostKeyChecking=no -o ConnectTimeout=10 -p "$SSH_PORT" "${SSH_USER}@${SSH_HOST}"; then
|
|
211
|
+
info "Public key berhasil di-copy ke HP"
|
|
212
|
+
else
|
|
213
|
+
warn "Gagal copy otomatis. Copy manual:"
|
|
214
|
+
echo " ssh-copy-id -p ${SSH_PORT} ${SSH_USER}@${SSH_HOST}"
|
|
215
|
+
fi
|
|
151
216
|
fi
|
|
152
217
|
|
|
153
|
-
# SSH config
|
|
218
|
+
# ── Setup SSH config ──
|
|
219
|
+
title "3. Setup SSH Config"
|
|
220
|
+
echo " Membuat alias '${HOST_ALIAS}' di ~/.ssh/config"
|
|
221
|
+
echo " Nanti cukup: ssh ${HOST_ALIAS}"
|
|
222
|
+
echo ""
|
|
154
223
|
mkdir -p "$HOME/.ssh"
|
|
155
224
|
if ! grep -q "Host $HOST_ALIAS$" "$HOME/.ssh/config"; then
|
|
156
225
|
cat >> "$HOME/.ssh/config" << EOF
|
|
@@ -163,38 +232,48 @@ Host $HOST_ALIAS
|
|
|
163
232
|
UserKnownHostsFile /dev/null
|
|
164
233
|
EOF
|
|
165
234
|
chmod 600 "$HOME/.ssh/config"
|
|
235
|
+
info "SSH config siap: ssh $HOST_ALIAS"
|
|
236
|
+
else
|
|
237
|
+
info "Host '$HOST_ALIAS' sudah ada di SSH config"
|
|
166
238
|
fi
|
|
167
|
-
info "Koneksi siap: ssh $HOST_ALIAS"
|
|
168
239
|
|
|
169
|
-
# Telegram
|
|
240
|
+
# ── Telegram ──
|
|
241
|
+
title "4. Telegram Alert (opsional)"
|
|
242
|
+
echo " Dapat notifikasi saat koneksi ke HP ini putus."
|
|
243
|
+
echo ""
|
|
244
|
+
echo -n " ➤ Setup Telegram? [y/N]: "
|
|
245
|
+
read -r tk
|
|
170
246
|
local tel_setup=false
|
|
171
|
-
if [
|
|
247
|
+
if [[ "$tk" =~ ^[Yy]$ ]]; then
|
|
172
248
|
echo ""
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
if [
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
tel_setup=true
|
|
181
|
-
else
|
|
182
|
-
warn "Lewati Telegram. Bisa diatur nanti edit file device."
|
|
183
|
-
fi
|
|
249
|
+
echo " Butuh Bot Token dari @BotFather dan Chat ID kamu."
|
|
250
|
+
TELEGRAM_BOT_TOKEN=$(prompt " ➤ Bot Token" "")
|
|
251
|
+
TELEGRAM_CHAT_ID=$(prompt " ➤ Chat ID (atau @username)" "")
|
|
252
|
+
if [ -n "$TELEGRAM_BOT_TOKEN" ] && [ -n "$TELEGRAM_CHAT_ID" ]; then
|
|
253
|
+
tel_setup=true
|
|
254
|
+
else
|
|
255
|
+
warn "Data tidak lengkap. Telegram bisa diatur nanti."
|
|
184
256
|
fi
|
|
185
257
|
fi
|
|
186
258
|
|
|
187
|
-
# Simpan
|
|
259
|
+
# ── Simpan ──
|
|
188
260
|
save_config "$HOST_ALIAS"
|
|
189
261
|
set_active "$HOST_ALIAS"
|
|
190
262
|
|
|
191
263
|
if $tel_setup; then
|
|
192
|
-
telegram_alert "✅ *termux-connect-pc* —
|
|
193
|
-
info "Telegram alert aktif"
|
|
264
|
+
telegram_alert "✅ *termux-connect-pc* — Device ${HOST_ALIAS} siap"
|
|
265
|
+
info "Telegram alert aktif ✅"
|
|
194
266
|
fi
|
|
195
267
|
|
|
196
268
|
echo ""
|
|
197
|
-
|
|
269
|
+
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
270
|
+
info "Setup selesai!"
|
|
271
|
+
echo ""
|
|
272
|
+
echo " Koneksi: ssh ${HOST_ALIAS}"
|
|
273
|
+
echo " Cek : termux-connect-pc check"
|
|
274
|
+
echo " Device lain: termux-connect-pc connection <nama>"
|
|
275
|
+
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
276
|
+
echo ""
|
|
198
277
|
}
|
|
199
278
|
|
|
200
279
|
# ─── COMMAND: list ────────────────────────────────────────────
|
|
@@ -335,11 +414,26 @@ main() {
|
|
|
335
414
|
*)
|
|
336
415
|
load_active
|
|
337
416
|
if [ -z "$ACTIVE_DEVICE" ]; then
|
|
338
|
-
echo "
|
|
417
|
+
echo ""
|
|
418
|
+
echo " Ini pertama kali kamu jalankan termux-connect-pc."
|
|
419
|
+
echo " Kita akan setup koneksi ke Termux di HP kamu."
|
|
339
420
|
echo ""
|
|
340
421
|
cmd_connection
|
|
341
422
|
else
|
|
342
|
-
|
|
423
|
+
echo ""
|
|
424
|
+
echo " Device aktif saat ini: ${ACTIVE_DEVICE}"
|
|
425
|
+
echo ""
|
|
426
|
+
echo " 1) Konek ke ${ACTIVE_DEVICE}"
|
|
427
|
+
echo " 2) Tambah device baru"
|
|
428
|
+
echo " 3) Lihat daftar device"
|
|
429
|
+
echo ""
|
|
430
|
+
echo -n " Pilih [1]: "
|
|
431
|
+
read -r choice
|
|
432
|
+
case "$choice" in
|
|
433
|
+
2) cmd_connection ;;
|
|
434
|
+
3) cmd_list ;;
|
|
435
|
+
*) cmd_check ;;
|
|
436
|
+
esac
|
|
343
437
|
fi
|
|
344
438
|
;;
|
|
345
439
|
esac
|