Minggu, September 13, 2009

SSH Tanpa Password

Tulisan ini mungkin sudah masuk kategori ketinggalan jaman banget, secara protokol SSH sudah digunakan dari jaman dulu kala. Namun tak ada salahnya juga sih, siapa tahu ada sebagian orang yang belum mengetahui tekniknya.

Secara konvensional jika seseorang melakukan login menggunakan protokol SSH ke suatu server, akan muncul prompt password. Prompt password ini mungkin akan dirasa cukup merepotkan jika orang tersebut adalah admin yang menangani mesin server yang lumayan banyak. Terlebih lagi jika password dari masing-masing username pada masing-masing mesin tersebut berbeda-beda dan susah untuk diingat.

Dengan menggunakan public/private key, maka memungkinkan untuk login menggunakan protokol SSH tanpa perlu memasukkan password. Agar lebih aman, private key yang dimiliki dapat diatur apakah memiliki passphrase atau tidak. Jika passphrase dikosongkan, maka tidak perlu memasukkan password lagi ketika melakukan login. Jika mekanisme ini diaplikasikan pada kasus diatas, maka admin tidak perlu lagi memasukkan password atau hanya perlu memasukkan passphrase yang sama ketika login ke semua mesin server yang ditangani oleh admin tersebut.

Berikut ini adalah langkah-langkahnya:
  1. Login ke client yang akan digunakan untuk login ke mesin server

  2. Membuat pasangan public/private key yang akan digenerate secara random menggunakan perintah ssh-keygen -t dsa atau ssh-keygen -t rsa tergantung tipe key yang akan digenerate apakah menggunakan protokol RSA atau DSA. Dari info yang aku peroleh, protokol DSA lebih aman.
  3. Output dari perintah diatas jika menggunakan perintah ssh-keygen -t dsa akan kira-kira akan seperti berikut:
    $ ssh-keygen -t dsa
    Generating public/private dsa key pair.
    Enter file in which to save the key (/home/test/.ssh/id_dsa):
    Created directory '/home/test/.ssh'.
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /home/test/.ssh/id_dsa.
    Your public key has been saved in /home/test/.ssh/id_dsa.pub.
    The key fingerprint is:
    78:2d:16:3a:72:48:ea:c9:49:2b:2e:86:99:27:b6:b9 test@anwyn
    The key's randomart image is:
    +--[ DSA 1024]----+
    | |
    | |
    | . . |
    | o . o o |
    | o o = S . |
    | + + o + . |
    |oo* |
    |B+o |
    |+Eo |
    +-----------------+


    Masukkan nama file untuk menyimpan private key atau kosongkan untuk menyimpannya ke dalam file default (biasanya di $HOME/.ssh/id_dsa). Kosongkan passphrase yang diminta agar tidak muncul prompt ketika sudah digunakan nantinya.

    Public key secara default akan disimpan dengan nama id_dsa.pub dan disimpan di folder .ssh pada home directory.

  4. Login ke server tujuan dan salin isi public key yang telah digenerate sebelumnya ke dalam file authorized_keys yang ada di folder .ssh pada home directory. Untuk lebih mudahnya dapat dilakukan perintah berikut untuk memudahkan proses penyalinan:
ssh-copy-id -i [letak public key] username@targetserver
Pada proses diatas akan muncul prompt password untuk user username pada mesin targetserver. Masukkan password yang sesuai dan selanjutnya akan muncul keterangan bahwa public key telah ditambahkan kedalam target server.

Sekarang setiap kali login ke mesin server tujuan dengan username yang telah ditentukan, tidak akan muncul prompt password. Login menggunakan protokol SSH tanpa password sudah bisa dilakukan.

Notes tambahan:
- Masing-masing user dapat membuat pasangan public/private keynya sendiri, dan satu private key hanya digunakan oleh satu user. Sementara public key dapat ditambahkan ke user-user lain pada mesin-mesin yang lain. Cara diatas hanya berlaku untuk user tententu pada mesin server tujuan. Untuk memungkinkan akses SSH tanpa password ke user lain di mesin yang sama atau di mesin yang lain, dapat menggunakan perintah ssh-copy-id.

Tidak ada komentar:

Posting Komentar