|

Manfaatkan SSH key untuk akses server lebih aman

Namanya login ke server pasti identik dengan mengisikan username beserta passwordnya, tapi ternyata ada cara yang lebih amandengan SSH key dan bagusnya kita tidak perlu mengetikkan apapun untuk masuk ke server. Tidak hanya itu, setiap usaha login menggunakan kata sandi akan langsung ditolak, jadi sekaligus mengurangi beban kerja server untuk mengecek apakah usaha tersebut valid atau tidak. Tertarik? 😀

Disini saya akan membuat tutorialnya dengan asumsi menggunakan Windows. Program yang akan kita manfaatkan adalah PuTTYgen dan PuTTY atau KiTTY, jadi silahkan download dulu sebelum mengikuti langkah – langkah berikut. Atau diunduh pas butuh juga tidak masalah, sama saja kok. 🙂

Membuat SSH Key di Windows

Langsung saja jalankan program PuTTYgen dan kemudian:

  1. Pilih SSH-2 RSA pada Type of key to generate.
  2. Kemudian isikan Number of bits in a generated key dengan nilai 2048 atau 4096. Ini menentukan seberapa kuat keamanan kuncinya agar tidak mudah dibobol menggunakan metode brute force.
  3. Akhirnya klik saja Generate
    .
    putty key generator

  4. Satu pasang public key dan private key akan diciptakan.
  5. Key comment untuk mengisikan teks, terserah sebenarnya tapi biasanya saya isikan identifikasi ini ditujukan untuk apa.
  6. Key passphrase tidak wajib diisi, fungsinya setiap kali akan menggunakan key tersebut akan diminta password.
  7. Klik Save public key, ini yang akan ditambahkan ke server.
  8. Juga klik Save private key, yang ini kita gunakan di komputer kita untuk login. Ekstensinya adalah .ppk. Jangan sampai hilang, kalau sudah terlanjur mematikan login SSH menggunakan username dan keynya tidak ada maka tidak bisa masuk kedalam server.

Jangan ditutup aplikasinya karena masih kita butuhkan.

Simpan SSH key ke server

Lanjutkan ke tahap berikutnya yaitu menambahkan public key tadi:

  1. Login seperti biasa lewat SSH ke server.
  2. Kemudian edit profil SSH key:
    nano ~/.ssh/authorized_keys
  3. Nah… kemudian pada PuTTYgen tadi isikan teks dari kotak Public key for pasting into OpenSSH authorized_keys file. Copy-paste maksud saya.
  4. Dilanjutkan dengan mengatur hak akses direktori dan file profil SSH, penting soalnya:
    chmod 0700 ~/.ssh
    chmod 0644 ~/.ssh/authorized_keys
  5. Selesai

Konfigurasikan agar PuTTY/KiTTY menggunakan SSH key untuk login

  1. Akhirnya kita buka program PuTTY/KiTTY kembali.
  2. Buka Connection > SSH > Auth.
    kitty configuration connection ssh authentication
  3. Isikan lokasi file .ppk yang dibuat oleh PuTTYgen sebelumnya pada kotak Private key file for authentication.
  4. Kembali ke bagian Session, isikan profil SSH dari server yang akan digunakan seperti biasanya.
  5. Klik Save.
  6. Kemudian silahkan buka koneksi dengan menekan Open.

Seharusnya anda tidak akan diminta mengisikan kata sandi.

Mematikan login SSH menggunakan username dan password

Harap jangan lakukan perintah berikut kalau login menggunakan SSH key diatas belum berhasil, bisa permanen gagal masuk ke server. Sudah yakin dan pasti bisa? Lanjutkan dengan menonaktifkan fitur login SSH memakai username dan password:

nano /etc/ssh/sshd_config

Cari dan ubah opsi berikut:

PasswordAuthentication no
UsePAM no

Jangan diketikkan manual karena sudah ada opsi – opsinya, tinggal mengubah yes menjadi no atau menghilangkan simbol komentar (#) dalam filenya.

Akhirnya silahkan restart layanan ssh:

service ssh reload

Yak, selesai sudah cara menggunakan SSH key untuk login ke server. Amankan private key anda juga, backup dan jangan sampai hilang.

Semoga bermanfaat. 🙂

24 Comments

  1. mas chandra, saya nonaktifkan akses root dan buat user baru yg mana setiap perintah yg memerlukan akses root harus dengan sudo su,,nah biasanya kalau sudah menjalankan perintah sudo su nanti akan diminta password root, tapi sebelumnya seperti yg mas jelaskan diatas saya nonaktifkan PasswordAuthentication no,,apa dengan menonaktifkan PasswordAuthentication no tidak diminta lagi password jadi langsung akses root setelah sudo su?

    1. Oh lain mbak, itu hanya mematikan akses login ssh user menggunakan sistem username dan password. Sedangkan untuk sudo itu memanfaatkan sistem login Linuxnya sendiri, bukan ssh. 🙂

      Kalau khawatir, jangan matikan dulu akses password ssh dan login menggunakan user biasa kemudian lakukan sudo.

    1. ok dah bisa 🙂 (saya hapus PasswordAuthentication no UsePAM no dan ganti passwd root) gak th yg bener yg mana.

      suwun

      1. error mas.. failed to import user key cannot load the user key (pake xftp)
        bisa login jika sy disable PasswordAuthentication dan UsePAM

        zzzz

      2. Loh memang seperti itu mas, dimatikan mode login passwordnya. Atau saya salah nangkap masalahnya ya? 🙂

      3. Sebentar… FTP dan SFTP itu hal berbeda mas. FTP itu harus ada FTP servernya seperti vsFTPd atau ProFTPD. Kalau SFTP memang nama bisa menyesatkan tapi aslinya ini protokol transfer file pakai SSH.

    1. Betul mas, asalkan masih pakai OpenSSH (yang memang sering jadi default distro Linux) maka bisa diikuti tutorialnya.

  2. Kalau login via username dan password nya dimatikan apakah masih bisa login lewat console hosting misalnya console server VULTR?

    1. Setahu saya bisa mas. Bisa dikatakan akses daruratnya kalau pakai cara normal tidak bisa terhubung ke servernya.

  3. Server refused our key
    tolong mass.ssss…..debian 8
    lupa masukin yg ini:

    chmod 0700 ~/.ssh
    chmod 0644 ~/.ssh/authorized_keys
  4. Mas Chandra, yg dipaste ke file authorized_keys itu ada berapa macam key sih? hanya yg “public key for pasting into Openssh authorized_keys file:” saja kan ya?
    kok saat saya test login lagi masih ditanya password ya?

  5. Bang, cara memindahkan private key di Ubuntu ke komputer lain gimana ya? Supaya bisa login ke server menggunakan komputer lain. Soalnya mau instal ulang komputer.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *