Product SiteDocumentation Site

9.2. Log Masuk Jarak Jauh

Sangat penting bagi administrator untuk dapat menyambung ke suatu komputer dari jarak jauh. Server, dikurung dalam kamar mereka sendiri, jarang dilengkapi dengan papan ketik dan monitor permanen — tetapi mereka terhubung ke jaringan.

9.2.1. Login Jarak Jauh Aman: SSH

Protokol SSH (Secure SHell) dirancang dengan keamanan dan kehandalan. Koneksi yang menggunakan SSH aman: mitra diotentikasi dan semua pertukaran data dienkripsi.
SSH juga menawarkan dua layanan transfer berkas. SCP adalah alat baris perintah yang dapat digunakan seperti cp, kecuali bahwa sebarang path ke mesin lain diawali dengan nama mesin, diikuti oleh titik dua.
$ scp berkas mesin:/tmp/
sftp is an interactive command, similar to ftp. In a single session, sftp can transfer several files, and it is possible to manipulate remote files with it (delete, rename, change permissions, etc.). Many FTP clients, including filezilla, support it.
Debian menggunakan OpenSSH, sebuah SSH versi gratis yang dikelola oleh proyek OpenBSD (sistem operasi bebas berbasis pada kernel BSD, berfokus pada keamanan) dan fork dari perangkat lunak SSH asli yang dikembangkan oleh perusahaan SSH Communication Corp, dari Finlandia. Perusahaan ini awalnya mengembangkan SSH sebagai perangkat lunak bebas, tetapi akhirnya memutuskan untuk melanjutkan perkembangan di bawah lisensi tak bebas. Proyek OpenBSD kemudian menciptakan OpenSSH untuk mempertahankan versi gratis dari SSH.
OpenSSH dipecah menjadi dua paket: bagian klien dalam paket openssh-client, dan server dalam paket openssh-server. Paket meta ssh bergantung pada kedua bagian dan memfasilitasi instalasi keduanya (apt install ssh), sedangkan task-ssh-server, sering dipilih selama instalasi awal, tergantung pada paket server saja.

9.2.1.1. Otentikasi Berbasis Kunci

Setiap kali seseorang log masuk melalui SSH, server remote meminta password untuk mengotentikasi pengguna. Ini bisa menjadi bermasalah jika Anda ingin mengotomatisasi sambungan, atau jika Anda menggunakan alat yang membutuhkan koneksi sering melalui SSH. Inilah sebabnya mengapa SSH menawarkan sistem otentikasi berbasis kunci.
Pengguna menghasilkan pasangan kunci pada komputer klien dengan ssh-keygen -t rsa; kunci publik yang dihasilkan disimpan di ~/.ssh/id_rsa.pub, sedangkan kunci privat yang sesuai disimpan di ~/.ssh/id_rsa. Pengguna kemudian dapat menggunakan ssh-copy-id server untuk menambahkan kunci publik mereka ke berkas ~/.ssh/authorized_keys di server, atau, jika akses SSH belum diaktifkan, mereka harus meminta administrator untuk menambahkan kunci mereka secara manual.
Jika kunci pribadi tidak dilindungi dengan "frasa sandi" pada saat pembuatannya, semua login berikutnya di server akan berfungsi tanpa kata sandi. Jika tidak, kunci pribadi harus didekripsi setiap kali dengan memasukkan frasa sandi. Untungnya ssh-agent memungkinkan kita untuk menyimpan kunci pribadi dalam memori untuk tidak perlu memasukkan kembali kata sandi secara teratur. Untuk ini, Anda cukup menggunakan ssh-add (sekali per sesi kerja) asalkan sesi tersebut sudah dikaitkan dengan contoh fungsional ssh-agent. Debian mengaktifkannya secara baku dalam sesi grafis, tetapi ini dapat dinonaktifkan dengan mengubah /etc/X11/Xsession.options dan mengomentari use-ssh-agent. Untuk sesi konsol, Anda dapat memulai agen secara manual dengan eval $(ssh-agent).

9.2.1.2. Otentikasi Berbasis Sertifikat

Kunci SSH tidak bisa hanya dilindungi oleh kata sandi (atau tidak). Fitur yang sering tidak dikenal adalah bahwa mereka juga dapat ditandatangani melalui sertifikat, baik host maupun kunci klien. Pendekatan ini hadir dengan beberapa keunggulan. Alih-alih memelihara berkas authorized_keys per pengguna seperti yang dijelaskan di bagian sebelumnya, server SSH dapat dikonfigurasi untuk mempercayai semua kunci klien yang ditandatangani oleh sertifikat yang sama (lihat juga Bagian 10.2.2, “Infrastruktur Kunci Publik: easy-rsa) dengan menggunakan direktif TrustedUserCAKeys dan HostCertificate di /etc/ssh/sshd_config.
TrustedUserCAKeys /etc/ssh/ssh_users_ca.pub

HostKey /etc/ssh/ssh_host_ecdsa_key
HostCertificate /etc/ssh/ssh_host_ecdsa_key-cert.pub
Sebaliknya klien juga dapat dikonfigurasi untuk mempercayai kunci host yang ditandatangani oleh otoritas yang sama, sehingga lebih mudah untuk memelihara berkas known_hosts (bahkan di seluruh sistem melalui /etc/ssh/known_hosts).
@cert-authority *.falcot.com ssh-rsa AAAA[..]
Keduanya, otentikasi sertifikat dan kunci publik, dapat digunakan bersama satu sama lain.

9.2.1.3. Combining authentication methods

Besides the already mentioned password based, key based, and the certificate based authentication, other methods like using a TOTP exist as well. Not only is this an abundance of options. They can also be combined. On the server side, the AuthenticationMethods directive can define an order of authentication methods a user has to successfully pass, before they are allowed to enter the system. It is even possible to define multiple alternative sequences:
AuthenticationMethods publickey,password publickey,keyboard-interactive:pam
This setting, for example, allows users to login after initially completing the public key authentication, followed by either a successful password authentication or entering a valid TOTP set up via PAM. On the user side, the sequence of methods can be defined using the PreferredAuthentications directive.

9.2.1.4. Menggunakan Aplikasi-aplikasi X11 Jarak Jauh

The SSH protocol allows forwarding of graphical data (“X11” session, from the name of the most widespread graphical system in Unix); the server then keeps a dedicated channel for those data. Specifically, a graphical program executed remotely can be displayed on the X.org server of the local screen, and the whole session (input and display) will be secure. Since this feature allows remote applications to interfere with the local system, it is disabled by default. You can enable it by specifying X11Forwarding yes in the server configuration file sshd_config(5) or by prepending the public key with the X11-forwarding keyword in the authorized_keys(5) file. Finally, the user must also request it by adding the -X option to the ssh command-line.

9.2.1.5. Menciptakan Tunnel Terenkripsi dengan Penerusan Port

Opsi -R dan -L memungkinkan ssh untuk menciptakan "terowongan terenkripsi" antara dua mesin, secara aman meneruskan port TCP lokal (lihat sidebar KEMBALI KE DASAR TCP/UDP) ke mesin remote atau sebaliknya.
ssh -L 8000:server:25 perantara menjalin suatu sesi SSH dengan host perantara dan mendengarkan port lokal 8000 (lihat Gambar 9.3, “Penerusan suatu port lokal dengan SSH”). Untuk sebarang koneksi yang terjalin pada port ini, ssh akan memulai koneksi dari komputer perantara ke port 25 pada server, dan akan mengikat kedua koneksi bersama-sama.
ssh -R 8000:server:25 perantara juga menjalin sesi SSH ke komputer perantara, tetapi pada mesin ini ssh mendengarkan port 8000 (lihat Gambar 9.4, “Penerusan suatu port jauh dengan SSH”). Sebarang koneksi yang dijalin pada port ini akan menyebabkan ssh membuka koneksi dari mesin lokal ke port 25 server dan mengikat kedua koneksi bersama-sama.
Dalam kedua kasus, sambungan dibuat ke port 25 pada host server, melewati tunnel SSH yang dijalin antara mesin lokal dan mesin perantara. Dalam kasus pertama, pintu masuk ke tunnel adalah port lokal 8000, dan data bergerak menuju mesin perantara sebelum diarahkan ke server pada jaringan "publik". Dalam kedua kasus, masukan dan keluaran di tunnel dibalik; pintu masuk adalah port 8000 pada mesin perantara, keluaran adalah pada host lokal, dan data diarahkan ke server. Dalam prakteknya, server ini biasanya mesin lokal atau perantara. Dengan cara itu SSH mengamankan koneksi dari satu ujung ke yang lain.
Penerusan suatu port lokal dengan SSH

Gambar 9.3. Penerusan suatu port lokal dengan SSH

Penerusan suatu port jauh dengan SSH

Gambar 9.4. Penerusan suatu port jauh dengan SSH

9.2.2. Memakai Desktop Grafis Jarak Jauh

VNC (Virtual Network Computing) memungkinkan akses remote ke desktop grafis.
Alat ini banyak digunakan untuk bantuan teknis; administrator dapat melihat kesalahan yang dihadapi pengguna, dan menunjukkan kepada mereka tindakan yang benar tanpa harus berdiri di samping mereka.
Pertama, pengguna harus mengotorisasi berbagi sesi mereka. Lingkungan desktop grafis GNOME mencakup opsi itu melalui PengaturanBerbagi (bertentangan dengan versi Debian sebelumnya, di mana pengguna harus memasang dan menjalankan vino). Agar ini berfungsi network-manager harus mengelola jaringan yang digunakan (misalnya mengaktifkan mode dikelola untuk perangkat yang ditangani oleh ifupdown di /etc/NetworkManager/NetworkManager.conf). KDE Plasma masih membutuhkan penggunaan krfb untuk memungkinkan berbagi sesi yang ada melalui VNC. Untuk lingkungan desktop grafis lainnya, x11vnc atau tightvncserver perintah (dari paket Debian dengan nama yang sama) atau tigervncserver (tigervnc-standalone-server) melayani tujuan yang sama dan menyediakan paket virtual vnc-server; Anda dapat membuat salah satu dari mereka tersedia untuk pengguna dengan menu eksplisit atau entri desktop.
Ketika sesi grafis dibuat tersedia oleh VNC, administrator harus menyambung ke sana dengan klien VNC. GNOME memiliki vinagre dan remmina untuk itu, sementara KDE menyertakan krdc (pada menu di KInternetKlien Remote Desktop). Ada klien VNC lainnya yang menggunakan baris perintah, seperti xtightvncviewer dalam paket Debian dengan nama yang sama atau xtigervncviewer dari tigervnc-viewer. Setelah terhubung, administrator dapat melihat apa yang terjadi, bekerja pada mesin dari jarak jauh, dan menunjukkan ke pengguna bagaimana untuk melanjutkan.