Postingan kali ini membahas remote ssh.
Sebenarnya untuk terkoneksi dengan ssh sangat mudah, base syntaxnya hanya ssh user@ipserver
. Tapi pada beberapa kasus kita membutuhkan agar remote node dan server node saling terhubung tanpa perlu memusingkan authentikasi. Sebagai contoh koneksi antar node dengan git, ansible dengan masing-masing host dn masih banyak contoh lainya.
postingan ini akan membahas bagaimana mendistribusikan public key ssh dengan dua cara, berikut pembahasanya.
Generate SSH Key
ssh-keygen -t rsa -b 4096
By default, key ssh akan di letakan pada folder .ssh
dengan nama id_rsa
sebagai private key dan id_rsa.pub
sebagai public key di bedakan dengan ekstensi .pub
.
Perlu diperhatikan key akan di simpan pada aktif direktori shell nya.
Distribusi Key
- Distribusi Manual
Dengan cara ini sebenarnya tinggal mengcopy secra manual file id_rsa.pub
ke direktori ~/.ssh/
dengan scp
.
scp -r id_rsa.pub root@10.10.10.1:~/.ssh/
Salin isi dari file id_rsa.pub
pada asal atau local kita lalu copy kan ke file authorized_keys
pada server tujuan secara manual.
cat id_rsa.pub | tee -a authorized_keys
atau copy paste manual dengan menggunakan nano
nano authorized_keys
Paste pada baris paling bawah, simpan dan exit.
Lakukan uji coba dengan perintah berikut
ssh -i id_rsa root@10.10.10.1
- Distribusi Otomatis
Dengan cara ini hanya perlu menjalankan satu perintah
ssh-copy-id -p 73 -i id_rsa.pub root@10.10.10.1
lakukan uji coba
ssh -i id_rsa root@10.10.10.1
harusnya sudah bisa terkoneksi
Study Case on AWS EC2
- Distribusi Key Pair di AWS Buat key pair dari dashboard AWS consoles, setelah terbuat dan terdownload biasanya harus change mode permissionya dulu
chmod 400 "key-nzucode-ec.pem"
Harusnya setelah itu hanya perlu konek saja seperti berikut
ssh -i "key-nzucode-ec.pem" ubuntu@108.14.165.117
Tapi ternyata tidak bisa doongg, harus kita tambahkan terlebih dahulu. Jalankan perintah berikut dari sisi client
ssh-keygen -y -f path/to/key-nzucode-ec.pem
nanti akan tampil outpunya berupa ssh-rsa
string seperti ini
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCWVhIjCHwJYAyLW7n0jN11MNY01qkWw+YygTjVI9IHwD1UvJVkyPd7LwEiP73j3F6+FVa2mJrrW7Tcdg2yueGPAzA/5YlC7DIKXnc5pjMLrsRft2UYw/kadFaUHHvwqw9fqtz9fjZ/tL454CejrZJApucFvY0AiaSBfFtqavCTG3RdJcuh49Mc53/go2Pod2ZN53erE3PEk8PdNXO4xsVxoRk6CQiTjsk/nJhcdUURG5aFRNRtcR6SWxKYf+msq9QFzCZYSdxQWcrr+hZan2AhpmYXbTvQlnVaatrGSlHOl7IEB7dPfvoqES9kDlVqCiIpwLZ8zGPPT9iI1l897CK23
Output inilah yg nanti kita copy ke .ssh/authorized_keys
, gunakan text editor untuk menambhakan isi filenya.
Setelah ditambahkan maka tinggal lakukan uji coba lagi
ssh-keygen -y -f path/to/key-nzucode-ec.pem
- BONUS
Disini saya sertakan bagaimana cara mengkonekan ke client tanpa menggunakan -i
, yaitu dengan menggunakan ssh agent
. Gunakan syntax berikut ini untuk menambahkan agent.
Di sisi peremote atau admin pc nya ya, jangan di pc server atau remotenya.
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
Pastikan lokasi file id_rsa (kunci privat) di arahkan ke path yg benar.
Buat file config di~/.ssh/config
.
nano ~/.ssh/config
lalu buat seperti ini
Host simrs
HostName 10.10.10.2
User ayam
IdentityFile ~/.ssh/id_rsa
Simpan dan exit, lalu uji coba dengan meremot user tanpa memasukan opsi -i
.
ssh ayam@10.10.10.2
Kika berhasil harusnya langsung masuk. Metode ini bisanya digunakan untuk configursai yg memang memerlukan koneksi otomatis login seperti rsync dll.
Harusnya sudah bisa konek, semoga bermanfaat, selamat mencoba