> For the complete documentation index, see [llms.txt](https://navixy.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://navixy.com/docs/on-premise/id/on-premise/how-to-guide/maintenance/server-credentials/ssh-keys.md).

# Kunci SSH

Siapkan autentikasi kunci SSH untuk server Linux Navixy On-Premise sebagai alternatif aman untuk kata sandi. Hasilkan kunci di Linux atau Windows dan nonaktifkan login kata sandi.

Koneksi jarak jauh ke server selalu memerlukan autentikasi klien agar pihak yang tidak berwenang tidak dapat memperoleh akses. Metode autentikasi dasar adalah penggunaan kata sandi. Namun, kata sandi memiliki satu kelemahan - kata sandi dapat dipecahkan, terutama jika Pemilik server tidak memperhatikan kompleksitas kata sandi.

Untuk koneksi SSH ke server Linux, metode alternatif direkomendasikan - autentikasi kunci SSH. Kunci-kunci ini merupakan sepasang - kunci privat dan kunci publik. Kunci privat harus disimpan, masing-masing, di lingkungan privat klien, sedangkan kunci publik dikirim ke server dan ditempatkan di `authorized_keys` berkas.

{% hint style="info" %}
Metode autentikasi ini tidak berlaku untuk server Windows, karena koneksi RDP tidak memiliki fungsi tersebut.
{% endhint %}

Penggunaan kunci SSH bukan merupakan persyaratan sistem platform Navixy, tetapi sangat direkomendasikan bagi Pemilik server demi alasan Keamanan.

{% hint style="danger" %}
Jangan membagikan kunci privat kepada siapa pun yang tidak Anda percayai. Jika Anda perlu memberikan akses ke server Anda kepada pihak ketiga, tidak perlu membagikan kunci Anda sendiri. Sebaliknya, Anda dapat meminta kunci publik mereka dan menambahkannya ke server Anda sementara, lalu menghapusnya setelah pekerjaan selesai.
{% endhint %}

## Membuat kunci SSH di Linux

Jika workstation Anda menggunakan OS berbasis Linux, maka Anda perlu menggunakan **openssh** paket. Paket ini mungkin sudah terpasang sebelumnya atau mungkin memerlukan instalasi tambahan. Pada Ubuntu dan Debian, paket ini diinstal dengan perintah berikut:

```
apt -y install openssh-server
```

Untuk distro lainnya, perintahnya mungkin berbeda.

Untuk mulai menghasilkan kunci, jalankan perintah berikut:

```
ssh-keygen
```

Anda akan diminta untuk memasukkan jalur berkas tempat kunci akan disimpan. Anda dapat membiarkan lokasi default (di dalam tanda kurung) dengan menekan Enter, atau menentukan lokasi dan nama berkas khusus.

Selanjutnya, Anda akan diminta untuk memasukkan frasa sandi. Ini adalah langkah Keamanan tambahan untuk melindungi kunci Anda dari penggunaan oleh pihak ketiga jika kunci tersebut dibobol. Langkah ini opsional.

![](https://382895980-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-999255a7ab863755c74e1fa67b7ab8c1f9d9a214%2Fimage-20240214-122034.png?alt=media)

Setelah Anda berhasil menghasilkan pasangan kunci, Anda akan melihat pemberitahuan:

![](https://382895980-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-0fd25c419623fbc908e70ae2e754e97971bfc384%2Fimage-20240214-122134.png?alt=media)

Dengan lokasi default, kunci publik disimpan di `/root/.ssh/id_rsa.pub`, dan kunci privat disimpan di `/root/.ssh/id_rsa`.

Sekarang Anda perlu menyalin kunci publik ke server Anda, ke direktori pengguna yang atas namanya koneksi jarak jauh akan dilakukan. Misalkan nama penggunanya adalah `navixy`. Hubungkan ke server Anda dan edit berkas dengan editor teks apa pun, misalnya:

```
vi /home/navixy/.ssh/authorized_keys
```

Isi kunci publik Anda setelah `ssh-rsa`. Anda dapat menambahkan komentar singkat setelah kunci untuk menjelaskan tujuannya.

![](https://382895980-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-2bb417eb5c4443182ad4568056c666651afbb053%2Fimage-20240214-124130.png?alt=media)

Simpan file.

Sekarang Anda dapat terhubung ke server menggunakan kunci SSH yang baru dibuat.

```
ssh -i id_rsa navixy@myserver.domain.com
```

Setelah ini, Anda dapat menonaktifkan autentikasi kata sandi di server Anda.

## Membuat kunci SSH di Windows

Jika Anda menggunakan Windows, klien yang paling umum untuk terhubung ke server melalui SSH adalah **PuTTY**. Ada juga banyak klien alternatif, tetapi semuanya pada dasarnya memiliki tujuan yang sama, jadi pilihan ada di tangan Anda.

Di Windows, pembuatan kunci SSH dilakukan menggunakan **PuTTYgen** utilitas yang disertakan bersama paket instalasi PuTTY.

Jalankan PuTTYgen dari menu mulai.

![](https://382895980-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-477e3c425ac5416d65fb92056a864f049ebe8a58%2Fimage-20240215-124950.png?alt=media)

Pastikan tipe kunci `RSA` dipilih dan klik **Generate**.

![](https://382895980-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-6aac962f348f5cb33771049a00381675f082cd24%2Fimage-20240215-125643.png?alt=media)

Selama proses pembuatan kunci, gerakkan mouse beberapa kali di atas jendela aplikasi untuk membuat nilai acak.

![](https://382895980-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-dfb47ef4fd49eaba7dad09bcce5e5e794ffcd3b2%2Fimage-20240215-125204.png?alt=media)

Setelah pembuatan kunci selesai, kunci publik akan ditampilkan di PuTTYgen, dan kunci privat akan disimpan di memori aplikasi. Untuk menyimpan kunci-kunci ini, klik **Save public key** dan **Save private key**. Tentukan direktori di PC Anda untuk menyimpan berkas kunci.

![](https://382895980-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-a2310c827687797ae57c7e94b22fd9f2de9b4231%2Fimage-20240215-133332.png?alt=media)

Saat menyimpan kunci privat, jika `Key passphrase` kolom tidak diisi, Anda akan menerima prompt "Apakah Anda yakin ingin menyimpan kunci ini tanpa frasa sandi untuk melindunginya?". Klik `Ya` atau kembali ke jendela sebelumnya untuk menentukan frasa sandi.

![](https://382895980-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-5e63b402b4fc3cf8843a476597260cc3a2ca721f%2Fimage-20240215-133546.png?alt=media)

Sekarang kunci publik harus disalin ke server Anda ke `authorized_keys` berkas. Berkas tersebut berada di direktori pengguna yang atas namanya koneksi jarak jauh akan dilakukan. Misalkan nama penggunanya adalah `navixy`, dan dalam hal ini lokasi berkasnya adalah `/home/navixy/.ssh/authorized_keys`.

Gunakan klien transfer berkas apa pun untuk bekerja dengan berkas di server Linux jarak jauh. Di sini kami akan menjelaskan prosesnya menggunakan **WinSCP** sebagai klien yang paling populer.

Buka `authorized_keys` berkas melalui WinSCP untuk diedit.

![](https://382895980-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-1bcdd4f34b03a4026334ed4a5623f59c81065f63%2Fimage-20240215-140635.png?alt=media)

Salin nilai kunci publik dari jendela PuTTYgen atau dari berkas yang telah disimpan sebelumnya. Kunci harus dimulai dengan `ssh-rsa`. Jika sudah ada kunci yang disimpan di `authorized_keys` berkas, tambahkan kunci baru setelahnya, mulai dari baris baru.

![](https://382895980-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-871f245b4f4ce9a9abf3073b89a6bee210f6bdf3%2Fimage-20240215-141101.png?alt=media)

Simpan file.

Sekarang Anda dapat terhubung ke server Anda melalui PuTTY menggunakan berkas kunci privat. Anda perlu menentukan jalurnya di PC Anda. Untuk melakukan ini, pilih jalur yang diperlukan di *Connection - SSH - Auth - Credentials* bagian (versi baru PuTTY) atau *Connection - SSH - Auth* (versi lama), pada *Private key for authentication* kolom.

![](https://382895980-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUnMmePH99SsdChtqqu7%2Fuploads%2Fgit-blob-3fb7ba5b02297fd1c989ead8c019ab43df536957%2Fimage-20240215-143917.png?alt=media)

Tentukan nama pengguna dan alamat server (mis. `navixy@myserver.domain.com`) di tab *Session* dan sambungkan ke server Anda. Jika semuanya dilakukan dengan benar, koneksi akan terjalin tanpa perlu memasukkan kata sandi.

## Kunci SSH di solusi cloud

Saat Anda men-deploy mesin virtual ke layanan cloud seperti AWS, MS Azure, dan yang serupa, Anda dapat menerbitkan kunci SSH pada saat Anda membuat mesin, atau menambahkan kunci yang sudah ada jika sebelumnya telah dibuat. Saat Anda melakukan ini, layanan cloud akan secara otomatis menyisipkan kunci publik ke `authorized_keys` pengguna server. Yang perlu Anda lakukan setelah server diterapkan adalah membuat koneksi SSH menggunakan kunci privat.

{% hint style="info" %}
Meskipun platform cloud memungkinkan Anda membuat kunci SSH, platform tersebut tidak menyimpan bagian privatnya di sisi mereka. Setelah diunduh, kunci privat harus dijaga dengan aman, karena jika hilang, akses ke server akan menjadi tidak mungkin.
{% endhint %}

## Menonaktifkan autentikasi kata sandi

Setelah Anda berhasil mengonfigurasi autentikasi kunci, Anda tidak perlu mempertahankan autentikasi kata sandi. Demi alasan Keamanan, Anda dapat menonaktifkannya.

Hubungkan ke server melalui SSH dan buka `sshd_config` berkas untuk diedit, misalnya dengan editor Vi:

```
vi /etc/ssh/sshd_config
```

Temukan parameter `PasswordAuthentication` di dalam berkas dan atur menjadi `no`:

```
PasswordAuthentication no
```

Simpan berkas. Mulai ulang layanan sshd:

```
systemctl restart sshd
```

Sekarang Anda dapat membangun koneksi jarak jauh ke server Anda melalui SSH hanya menggunakan kunci SSH yang telah ditambahkan sebelumnya. Autentikasi kata sandi dinonaktifkan.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://navixy.com/docs/on-premise/id/on-premise/how-to-guide/maintenance/server-credentials/ssh-keys.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
