AutoSSH adalah script Bash sederhana untuk menjaga koneksi SSH tetap aktif dengan fitur auto-reconnect. Jika koneksi terputus, script akan otomatis mencoba menghubungkan kembali ke server. Tools ini dirancang untuk jaringan tidak stabil, memberikan animasi visual progres, dan user-friendly dengan input fleksibel untuk username dan hostname.
wget https://raw.githubusercontent.com/JawaTengahXploit1337/AutoSSH/main/autossh.sh -O /usr/local/bin/autossh
This usage is as same as ssh
command but I suggest you use SSH aliases instead of IP, for example
autossh root@prod-server
Or you can enter to interactive mode by just use it without any paramters
autossh
It will ask you to enter SSH Username and SSH IP/Aliases.
Reference to SSH aliases, please take a look to this guide.
-
Auto-reconnect SSH
- Script ini mencoba untuk menjaga sesi SSH tetap hidup (persistent). Jika sesi SSH ke server tertentu terputus, script secara otomatis akan mencoba menghubungkan kembali ke server.
-
User Input untuk Detail Koneksi SSH
- Pengguna akan diminta untuk memberikan:
- Username SSH (misalnya,
root
) - IP Address/Hostname SSH (misalnya,
192.168.1.100
)
- Username SSH (misalnya,
- Data ini disimpan dalam history untuk mempermudah penggunaan berikutnya.
- Pengguna akan diminta untuk memberikan:
-
Visualisasi Progres dengan Animasi
- Script memberikan animasi sederhana saat mencoba menghubungkan ke server, seperti titik-titik (#) atau progress bar untuk memberi umpan balik visual kepada pengguna.
-
Pengecekan Status Koneksi
- Script memantau apakah sesi SSH sudah aktif atau tidak:
- Jika aktif, ia mencetak pesan "I'm alive".
- Jika tidak aktif, ia mencoba menyambung ulang ke server dan mencetak pesan "I'm dead... God is bringing me back...".
- Script memantau apakah sesi SSH sudah aktif atau tidak:
-
Inisialisasi Variabel dan Pengaturan Warna
- Script mendeteksi apakah terminal mendukung warna, lalu mengatur variabel warna seperti
RED
,GREEN
,BLUE
, dll., untuk digunakan dalam mencetak teks berwarna.
- Script mendeteksi apakah terminal mendukung warna, lalu mengatur variabel warna seperti
-
Mendapatkan Data Input SSH
- Jika data username atau IP server tidak diberikan sebagai parameter script, script akan meminta pengguna untuk memasukkan detail tersebut.
-
Fungsi
auto_connect
- Fungsi inti yang terus berjalan untuk memantau sesi SSH:
- Pengecekan Sesi Aktif
- Menggunakan perintah
ps aux
untuk melihat apakah sesi SSH sudah berjalan.
- Menggunakan perintah
- Reconnect Otomatis
- Jika sesi tidak ditemukan, script mencoba menyambungkan kembali menggunakan perintah
ssh
.
- Jika sesi tidak ditemukan, script mencoba menyambungkan kembali menggunakan perintah
- Pengecekan Sesi Aktif
- Fungsi inti yang terus berjalan untuk memantau sesi SSH:
-
Loop Tak Berujung
- Fungsi utama script (
main
) memanggil fungsiauto_connect
, yang berjalan dalam loop tanpa henti untuk terus memantau dan menjaga koneksi SSH tetap hidup.
- Fungsi utama script (
- Simpan script dengan nama file, misalnya
autossh.sh
. - Berikan izin eksekusi:
chmod +x autossh.sh
- Jalankan script:
- Jika username dan IP belum diberikan:
Script akan meminta input username dan IP.
./autossh.sh
- Jika username dan IP sudah diketahui, berikan sebagai parameter:
Contoh:
./autossh.sh user@hostname
./autossh.sh [email protected]
- Jika username dan IP belum diberikan:
- Reliabilitas Koneksi: Sangat berguna untuk menjaga koneksi SSH tetap hidup pada jaringan yang tidak stabil.
- User-Friendly: Memberikan animasi dan pesan visual yang membantu pengguna memahami status koneksi.
- Otomatis: Tidak perlu memulai koneksi ulang secara manual jika terputus.
- Parameter Opsional: Menambahkan opsi seperti port SSH (
-p
) atau file kunci privat (-i
). - Log Aktivitas: Menyimpan log ke file untuk memantau waktu koneksi atau pemutusan.
- Batas Waktu Reconnect: Menambahkan opsi untuk membatasi jumlah upaya reconnect sebelum berhenti.