Distribute Public Key SSH

Fega Suseno - Nov 13 '23 - - Dev Community

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
Enter fullscreen mode Exit fullscreen mode

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/
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

atau copy paste manual dengan menggunakan nano

nano authorized_keys
Enter fullscreen mode Exit fullscreen mode

Paste pada baris paling bawah, simpan dan exit.

Lakukan uji coba dengan perintah berikut

ssh -i id_rsa root@10.10.10.1
Enter fullscreen mode Exit fullscreen mode
  • Distribusi Otomatis

Dengan cara ini hanya perlu menjalankan satu perintah

ssh-copy-id -p 73 -i id_rsa.pub root@10.10.10.1
Enter fullscreen mode Exit fullscreen mode

lakukan uji coba

ssh -i id_rsa root@10.10.10.1
Enter fullscreen mode Exit fullscreen mode

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"
Enter fullscreen mode Exit fullscreen mode

Harusnya setelah itu hanya perlu konek saja seperti berikut

ssh -i "key-nzucode-ec.pem" ubuntu@108.14.165.117
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

nanti akan tampil outpunya berupa ssh-rsa string seperti ini

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCWVhIjCHwJYAyLW7n0jN11MNY01qkWw+YygTjVI9IHwD1UvJVkyPd7LwEiP73j3F6+FVa2mJrrW7Tcdg2yueGPAzA/5YlC7DIKXnc5pjMLrsRft2UYw/kadFaUHHvwqw9fqtz9fjZ/tL454CejrZJApucFvY0AiaSBfFtqavCTG3RdJcuh49Mc53/go2Pod2ZN53erE3PEk8PdNXO4xsVxoRk6CQiTjsk/nJhcdUURG5aFRNRtcR6SWxKYf+msq9QFzCZYSdxQWcrr+hZan2AhpmYXbTvQlnVaatrGSlHOl7IEB7dPfvoqES9kDlVqCiIpwLZ8zGPPT9iI1l897CK23

Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode
  • 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
Enter fullscreen mode Exit fullscreen mode

Pastikan lokasi file id_rsa (kunci privat) di arahkan ke path yg benar.
Buat file config di ~/.ssh/config.

nano ~/.ssh/config
Enter fullscreen mode Exit fullscreen mode

lalu buat seperti ini

Host simrs
   HostName 10.10.10.2
   User ayam
   IdentityFile ~/.ssh/id_rsa
Enter fullscreen mode Exit fullscreen mode

Simpan dan exit, lalu uji coba dengan meremot user tanpa memasukan opsi -i.

ssh ayam@10.10.10.2
Enter fullscreen mode Exit fullscreen mode

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

. . . . . . . . . . . . . . . . . . . . . . . . . . .
Terabox Video Player