Cara Mengelola Banyak Server SSH dan VM Cloud di Mac

Untuk mengelola banyak server SSH di Mac (50+ server dan VM cloud), kelompokkan host Anda, simpan password di keychain sistem, dan baca angka CPU, RAM dan disk secara langsung tanpa memasang agent di setiap server. SSH Host Manager di MXterm Pro melakukannya lewat koneksi OpenSSH sungguhan. Paket Free menyimpan 5 host secara default; paket Pro menghapus batasnya.
Panduan Ini untuk Siapa
Panduan ini untuk Anda yang menjalankan infrastruktur backend di AWS, Google Cloud, DigitalOcean, Hetzner atau bare metal. Biasanya jumlah host-nya terlalu banyak untuk diingat, tersebar di production, staging dan beberapa server dev sekali pakai.
Jika Anda hanya mengelola satu atau dua server, tab Terminal.app biasa dan ~/.ssh/config tetap alat paling sederhana. Fitur pengorganisasian di bawah (grup, filter, broadcast dan telemetry) baru terasa gunanya saat Anda memegang belasan host atau lebih dan tidak ingat lagi tab mana untuk server mana.
Mengelompokkan dan Memfilter Puluhan Host
Tekan ⌘⇧H untuk membuka SSH Host Manager. Setiap host yang Anda tambahkan punya nama, alamat, port, username, dan salah satu dari tiga jenis autentikasi: password, file private key atau keyboard-interactive. Sebagian besar pintasan, termasuk yang ini, bisa diubah di Pengaturan → Pintasan. Zoom, ⌘, ⌘1 sampai ⌘9 dan beberapa lainnya bersifat tetap.
Setiap host masuk ke satu grup. Tersedia enam grup bawaan (Production, Staging, Testing, Cloud / VPS, Internal / VPN, Development), dan Anda bisa menambah grup sendiri. Deretan chip filter di atas daftar host menampilkan jumlah host secara langsung di samping tiap grup.
Klik "Production (14)" dan daftar 50 host menyempit menjadi host yang bisa merugikan Anda jika salah ketik. Ini hanya kumpulan filter grup yang datar, bukan pohon folder bertingkat. Tidak ada kotak pencarian teks bebas di luar filter tersebut, jadi jangan berharap lebih dari itu.
Jika server Anda tercatat di ~/.ssh/config, tombol Impor membaca baris Host, HostName, User, Port dan IdentityFile, lalu memasukkannya ke grup "Imported" sekaligus. Tombol yang sama juga membaca file sesi MobaXterm (hanya sesi SSH, masuk ke grup "MobaXterm") dan ekspor profil iTerm2 (profil yang perintahnya berupa baris ssh biasa, masuk ke grup "iTerm2"). Di Mac, tab Impor / Ekspor milik Session Manager juga bisa memindai profil iTerm2.
Nama grup itu ("MobaXterm" atau "iTerm2" untuk impor tersebut) tampil sebagai badge di setiap host. Namun baris filter hanya mencantumkan enam grup bawaan dan grup yang Anda tambahkan sendiri, jadi tambahkan grup dengan nama yang sama untuk memfilternya. Di Pro, config berisi 50 host menjadi satu kali impor, bukan lima puluh form. Di Free, impor berhenti di batas 5 host.
Importer tidak mengurai ProxyJump maupun direktif lanjutan lainnya. Pembahasannya ada di bawah.
Di Mana Password dan Key Anda Sebenarnya Disimpan
Password SSH disimpan di credential store sistem operasi Anda (Keychain macOS di Mac) dengan nama service com.mxterm.desktop.ssh, berdasarkan id host. Passphrase key tidak disimpan: aplikasi membuangnya sebelum daftar host ditulis, dan passphrase itu tidak pernah sampai ke credential store OS. Windows Credential Manager sudah terhubung, tetapi SSH di Windows belum diverifikasi.
Tidak ada data rahasia yang ditulis ke file pengaturan lokal MXterm Pro. Host lama yang masih menyimpan password plaintext akan ditulis ulang tanpa password itu pada pemuatan berikutnya.
Path file key seperti ~/.ssh/id_ed25519 bukan rahasia, hanya sebuah path, sehingga kolom itu tetap berada di daftar host biasa. Ini sama dengan yang Anda lihat di ~/.ssh/config.
Kenapa Menyambung Ulang ke Server yang Sama Terasa Instan
Di macOS, setiap koneksi SSH yang dibuka MXterm Pro membawa tiga opsi: ControlMaster=auto, ControlPath=~/.mxterm/sockets/%r@%h:%p dan ControlPersist=10m. Itu connection multiplexing OpenSSH yang asli, bukan buatan sendiri.
Koneksi pertama ke sebuah host membuka master socket. Koneksi berikutnya ke host yang sama, misalnya tab terminal kedua atau panel SFTP, memakai ulang socket itu, dan master tetap hidup selama 10 menit setelah koneksi terakhir ditutup. Dengan begitu handshake TCP baru dan putaran autentikasi dilewati. Mengubah pengaturan koneksi host tersimpan atau menghapus host akan menutup koneksi bersama milik host itu, dan panel file menampilkan tombol Reset koneksi saat server menolak login atau meminta password baru.
Ini juga menyelesaikan masalah pada host yang memakai password. BatchMode=yes berarti SFTP tidak bisa meminta password sendiri, jadi tanpa master socket bersama, host dengan password akan tersambung di tab terminal tetapi gagal di file browser. Dengan ControlPath yang dipakai bersama, panel SFTP memakai sesi yang sudah Anda autentikasi di pane terminal.
Menjalankan Perintah yang Sama di Banyak Server Sekaligus (Broadcast Mode)
⌘⇧B mengaktifkan Broadcast Mode dengan semua pane di tab saat ini sudah masuk grup. Option/Alt+Klik sebuah pane untuk mengeluarkan atau memasukkannya lagi. Clear mengosongkan grup dan Pilih semua mengisinya kembali. Banner permanen bertuliskan "Broadcast ON · N panes" tetap tampil di layar. Ketikan di pane mana pun dalam grup dikirim ke semuanya, sesuai urutan layout.
Periksa dua hal sebelum Anda mengandalkannya untuk 50 server. Grup dimulai dengan semua pane di tab saat ini, jadi persempit dulu sebelum mengetik, dan jangkauannya hanya pane di tab itu, bukan semua koneksi yang terbuka. Selain itu, tidak ada konfirmasi per ketikan setelah mode aktif, karena tujuannya memang mengetik sekali dan hasilnya sampai ke semua pane.
Pengamannya adalah banner yang sulit terlewat. Clear melepas seluruh grup dan Esc langsung keluar. Susunlah grup Anda dengan kehati-hatian yang sama seperti sebelum menjalankan pssh atau pane tmux tersinkronisasi pada fleet production, karena alat ini tidak akan menghentikan Anda jika Anda mengirim ke enam server yang salah.
Server Telemetry Langsung Tanpa Monitoring Agent
Server Telemetry HUD berada di bagian bawah tab SSH dan menampilkan CPU %, RAM %, disk % dan uptime, dengan kode warna hijau, kuning atau merah di atas 65% dan 85%. HUD ini diperbarui otomatis setiap 20 detik, dan tombol refresh manual memberi Anda angka saat itu juga.
Setiap refresh menjalankan satu baris python3 -c "..." berumur pendek lewat koneksi SSH yang sudah ada. Skrip itu membaca beban CPU dari os.getloadavg() dibandingkan jumlah core, memori dari /proc/meminfo, disk dari shutil.disk_usage('/') dan uptime dari /proc/uptime, lalu selesai. Tidak ada yang dipasang dan tidak ada yang tetap berjalan di server.
Satu syaratnya: python3 harus ada di host remote. Banyak image server menyertakannya, tetapi yang minimal seperti Alpine sering tidak. Tanpa itu, bar statistik tetap kosong: panggilan uptime yang juga dicoba tidak menghasilkan field yang bisa dipakai, dan MXterm Pro lebih memilih tidak menampilkan angka daripada menampilkan angka karangan. RAM dibaca dari /proc/meminfo, jadi server macOS atau BSD menampilkan tanda strip untuk RAM, bukan persentase.
Bagaimana dengan Jump Host dan Bastion?
Host tersimpan punya kolom Jump Host / Bastion (Anda bisa merantai beberapa, dipisah koma) dan opsi Teruskan agen SSH. Koneksi dibangun sebagai argv ssh asli dengan -J dan -A yang disesuaikan.
Importer ~/.ssh/config tidak mengisi kolom itu untuk Anda. Ia hanya mengambil HostName, User, Port dan IdentityFile, dan baris ProxyJump dilewati, tidak diterjemahkan. Profil iTerm2 yang perintahnya ssh -J bastion host justru membawa jump host-nya. Untuk host hasil impor dari ~/.ssh/config atau MobaXterm, atur jump host sendiri, sekali saja, di form host tersebut.
Alternatifnya, pane terminal adalah PTY sungguhan. Jika ~/.ssh/config Anda punya entri Host prod-db dengan baris ProxyJump bastion, mengetik ssh prod-db di pane shell biasa akan mengikuti config itu persis seperti Terminal.app.
Dengan cara itu Anda tidak mendapat label grup host tersebut maupun bar statistik servernya.
Broadcast menjangkau pane dalam satu tab. Tab yang dibuka dari SSH Host Manager terikat ke satu host, jadi untuk mengetik ke beberapa server sekaligus, buka pane shell biasa dalam satu tab, jalankan ssh <alias> di masing-masing, lalu broadcast ke pane itu. Free tidak membatasi jumlah pane.
Free vs. Pro: Berapa Sebenarnya Biaya 50 Server
Ini angka yang paling penting untuk kasus ini: paket gratis membatasi Anda pada 5 host SSH tersimpan. Pengelompokan, impor, multiplexing, broadcast dan telemetry bekerja sama persis di Free dan Pro. Yang tidak bisa Anda lakukan hanyalah menyimpan 50 host tanpa Pro, yang tidak membatasi jumlah host.
Garis pemisah Free dan Pro yang sama berlaku di bagian lain aplikasi. Free tidak membatasi jumlah pane. Free membatasi Control Room (sebelumnya War Room) di 2 anggota per room (Pro tanpa batas anggota) dan Mesin tersimpan di 1.
Semua itu tidak diperlukan untuk mengelola 50 server. Hal ini baru relevan jika Anda juga menjalankan Claude Code, Codex atau Gemini CLI terhadap server-server itu bersama sesi SSH Anda.
Perbandingan dengan iTerm2, Warp, Termius dan MobaXterm untuk Fleet Server
iTerm2 adalah emulator terminal gratis yang matang, khusus macOS, dengan integrasi tmux yang sangat baik dan pengelolaan profil. Profil dan password manager berbasis Keychain-nya sudah mencakup banyak hal, tetapi ia tidak menyertakan pengelola host SSH tersendiri dengan filter grup atau telemetry HUD. Anda harus merakitnya sendiri dari tmux, dotfiles dan alat monitoring terpisah.
Warp adalah terminal modern dengan AI di jendela yang sama dengan shell Anda. Ini pilihan yang kuat jika Anda ingin bantuan AI untuk menulis perintah dan menjalankan agent. Warp tidak dirancang untuk mengelola puluhan host SSH tersimpan dengan grup dan statistik server. MXterm Pro dibuat untuk beberapa agent di split pane.
Termius adalah pesaing terdekat di sini. Sinkronisasi host SSH lintas perangkat, aplikasi mobile dan pengelola host yang matang adalah kekuatan nyata, dan jika Anda perlu daftar host di ponsel, Termius lebih cocok. Termius tidak menjalankan beberapa AI coding agent berdampingan atau menyiapkan git worktree untuk tiap agent.
MobaXterm tetap alat terlengkap bagi pengguna Windows yang butuh X11 forwarding dan tunneling di samping SSH, tetapi tidak punya build macOS dan tidak ada orkestrasi AI agent.
Multi-Agent Control Room di MXterm Pro menjalankan beberapa agent (Claude Code, Codex, Gemini CLI dan lainnya) di split pane. Saat isolasi worktree diaktifkan, setiap pane agent mendapat git worktree sendiri di <repo>/.worktrees/<slug>, yang mengurangi kemungkinan kesalahan satu agent menyentuh working copy agent lain.
⌘J Command Recipes mencocokkan apa yang Anda ketik dengan kumpulan perintah Linux siap pakai bawaan. Ini pencocokan keyword, bukan model yang menulis bash.
Mulai Menggunakan
Unduh MXterm Pro dan coba SSH Host Manager pada berapa pun host yang Anda punya hari ini. Pengelompokan, impor, multiplexing, broadcast dan telemetry HUD semuanya tersedia di paket gratis.
Satu-satunya batas yang akan Anda temui pada fleet 50 server yang nyata adalah batas 5 host tersimpan. Host tanpa batas di Pro itulah yang membuat Anda bisa melewatinya.
SSH multi-pane, Command Recipes (Cmd+J) dan Control Room (sebelumnya War Room) multi-agent: Anda bisa mulai gratis.
Sudah punya MXterm Pro? Baca panduan penyiapan →
Baru mengenal MXterm Pro? Lihat harga →
Pertanyaan yang Sering Diajukan
Password SSH yang tersimpan masuk ke credential store OS (Keychain macOS di Mac) dengan nama service com.mxterm.desktop.ssh, bukan ke file pengaturan aplikasi. Passphrase key tidak disimpan. Path file key (~/.ssh/id_ed25519) bukan rahasia, jadi tetap berada di daftar host. Panel file, transfer dan bar statistik memakai BatchMode=yes dan tidak bisa meminta password, tidak seperti pane terminal.
Bisa. ⌘⇧B mengaktifkannya dengan semua pane di tab saat ini masuk grup. Option/Alt+Klik mengubah status sebuah pane, Clear mengosongkan grup dan Pilih semua mengisinya kembali. Banner permanen "Broadcast ON · N panes" tetap terlihat dan Esc langsung keluar. Tidak ada konfirmasi per ketikan, jadi persempit grup lebih dulu. Pengamannya berupa banner yang sulit terlewat dan mudah dihapus, bukan sebuah prompt.
Tidak. Paket gratis membatasi host SSH tersimpan di 5, dan Pro menghapus batas itu. Pengelompokan, filter, impor, multiplexing, broadcast dan telemetry HUD bekerja sama di kedua paket. Jumlah host adalah batas yang akan ditemui fleet 50 server.
Tidak ada agent permanen. Setiap refresh menjalankan satu baris python3 berumur pendek lewat koneksi SSH yang sudah ada untuk membaca beban CPU, /proc/meminfo, penggunaan disk dan /proc/uptime, lalu selesai. Satu syaratnya adalah python3 ada di host remote; tanpa itu, bar statistik tetap kosong.
Bisa. Sejak 1.0.21, setiap host tersimpan punya kolom Jump Host / Bastion (rantai beberapa dengan koma) dan opsi Teruskan agen SSH. Impor ~/.ssh/config masih melewati baris ProxyJump, jadi atur jump host pada host hasil impor sendiri. Mengetik alias ssh yang sudah ada di pane shell biasa juga berfungsi seperti di Terminal.app, tetapi tanpa grup host itu atau statistik server dari alur Connect terkelola.
Importer membaca baris Host, HostName, User, Port dan IdentityFile, lalu membuat satu host tersimpan untuk setiap entri Host yang punya HostName. Blok wildcard Host * dan entri tanpa HostName dilewati, dan hanya IdentityFile pertama yang disimpan. Importer tidak mengurai ProxyJump, blok Match atau direktif lanjutan lainnya. Semua itu tetap berlaku jika Anda mengetik alias langsung di pane shell.