Membaca tulisan Banu tentang meningkatkan produktivitas dengan membuat command alias untuk perintah yang sering digunakan berulang di Mac, saya tergelitik dengan bagian di mana Banu melakukan koneksi SSH menggunakan skrip Bash.
Saya punya cara lain yang lebih mudah untuk melakukan koneksi ke beberapa server lewat SSH. Saya coba berbagi caranya, siapa tahu ada yang terbantu.
Cara ini saya gunakan sehari-hari. Karena saya menggunakan Mac, maka cara ini bisa juga diterapkan di Linux.
Menggunakan Berkas Config
Banu memberi contoh dengan menggunakan 3 server. Ia membuat script Bash hanya untuk membuat koneksi SSH ke salah satu server tersebut.
Ketiga server contoh tersebut adalah:
- Server 1, diberi nama doraemon, dengan IP 192.168.1.11 dan port SSH 1111 dengan nama pengguna userdoraemon
- Server 2, diberi nama nobita, dengan IP 192.168.1.22 dan port SSH 2222 dengan nama pengguna usernobita
- Server 3, diberi nama boboho, dengan IP 192.168.1.33 dan port SSH 3333 dengan nama pengguna userboboho
Saya memilih menggunakan berkas config
untuk menyimpan informasi konfigurasi server yang sering saya gunakan.
Pada folder home, pada direktori ~/.ssh
, lihat apakah ada berkas config
. Jika belum ada, buat berkas config
dengan isi sebagai berikut.
Host doraemon HostName 192.168.1.11 Port 1111 User userdoraemon Host doraemon HostName 192.168.1.22 Port 2222 User usernobita Host boboho HostName 192.168.1.33 Port 3333 User userboboho
Untuk terhubung, tak perlu lagi menulis ssh namapengguna@hostname:port tapi cukup dengan ssh doraemon atau ssh nobita.
Berkas config
ini kemudian bisa disalin ke Dropbox, OneDrive, atau media simpan lainnya untuk cadangan dan sinkronisasi.
Akses SSH Tanpa Kata Sandi
Akses SSH ke banyak server kini lebih mudah, tak perlu lagi mengingat-ingat nama pengguna, alamat IP, dan port. Namun muncul masalah lagi, kata sandi masing-masing server harus diingat.
Untuk yang khawatir dengan keamanan, cara berikut mungkin tidak disarankan. Namun karena tujuannya adalah mempermudah, maka saya pribadi lebih suka menggunakan cara ini.
Membuat Kunci Enkripsi
Cara ini membutuhkan kunci enkripsi OpenSSH. Untuk membuatnya, gunakan perintah ssh-keygen lalu tekan enter untuk setiap pertanyaan yang muncul. Secara default perintah ini akan membuat sepasang kunci RSA.
Pastikan pada direktori ~/.ssh
terdapat berkas id_rsa
dan id_rsa.pub
.
Menyalin Kunci Enkripsi Publik Ke Server
Agar bisa masuk ke server tanpa memasukkan kata sandi, unggah dan salin kunci enkripsi publik RSA yang telah dibuat ke server tujuan dengan perintah ssh-copy-id -i ~/.ssh/id_rsa.pub server.
Pada contoh ini, unggah masing-masing kunci enkripsi ke masing-masing server, misalnya ssh-copy-id -i ~/.ssh/id_rsa.pub doraemon.
Server doraemon akan menanyakan kata sandi untuk yang terakhir kalinya, kemudian setelah terhubung ke doraemon, keluar lalu lakukan koneksi SSH ke doraemon. Kita akan langsung masuk ke doraemon tanpa ditanya kata sandi.
Perbarui Berkas Config
Setelah sukses masuk ke server tanpa ditanya kata sandi, buka kembali berkas ~/.ssh/config
lalu tambahkan IdentityFile ~/.ssh/id_rsa
ke dalam ~/.ssh/config
sebagai berikut.
Host doraemon HostName 192.168.1.11 Port 1111 User userdoraemon IdentityFile ~/.ssh/id_rsa Host doraemon HostName 192.168.1.22 Port 2222 User usernobita IdentityFile ~/.ssh/id_rsa Host boboho HostName 192.168.1.33 Port 3333 User userboboho IdentityFile ~/.ssh/id_rsa
Yang menarik adalah, kita bisa menyalin pasangan kunci enkripsi id_rsa
dan id_rsa.pub
ke Dropbox atau OneDrive, lalu memanggil berkas kunci enkripsi privat ini langsung, dengan catatan, kunci enkripsi publik sudah diunggah ke server tujuan.
Host doraemon HostName 192.168.1.11 Port 1111 User userdoraemon IdentityFile ~/Dropbox/id_rsa Host doraemon HostName 192.168.1.22 Port 2222 User usernobita IdentityFile ~/Dropbox/id_rsa Host boboho HostName 192.168.1.33 Port 3333 User userboboho IdentityFile ~/Dropbox/id_rsa
Ampuun maaasss….