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 adalah perintah yang interaktif, mirip dengan ftp. Dalam satu sesi, sftp dapat mentransfer beberapa berkas, dan mungkin untuk memanipulasi berkas remote dengannya (menghapus, mengubah nama, mengubah hak akses, dll).
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 is split into two packages: the client part is in the openssh-client package, and the server is in the openssh-server package. The ssh meta-package depends on both parts and facilitates installation of both (apt install ssh), while the task-ssh-server, often chosen during the initial installation, depends on the server package only.

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.
The user generates a key pair on the client machine with ssh-keygen -t rsa; the so generated public key is stored in ~/.ssh/id_rsa.pub, while the corresponding private key is stored in ~/.ssh/id_rsa. The user can then use ssh-copy-id server to add their public key to the ~/.ssh/authorized_keys file on the server, or, if SSH access hasn't been enabled yet, they have to ask the administrator to add their key manually.
If the private key was not protected with a “passphrase” at the time of its creation, all subsequent logins on the server will work without a password. Otherwise, the private key must be decrypted each time by entering the passphrase. Fortunately, ssh-agent allows us to keep private keys in memory to not have to regularly re-enter the password. For this, you simply use ssh-add (once per work session) provided that the session is already associated with a functional instance of ssh-agent. Debian activates it by default in graphical sessions, but this can be deactivated by changing /etc/X11/Xsession.options and commenting out use-ssh-agent. For a console session, you can manually start the agent with eval $(ssh-agent).

9.2.1.2. Cert-Based Authentication

SSH keys cannot just be protected by a password (or not). An often unknown feature is that they can also be signed via certificate, both the host as well as the client keys. This approach comes with several advantages. Instead of maintaining an authorized_keys file per user as described in the previous section, the SSH server can be configured to trust all client keys signed by the same certificate (see also Bagian 10.2.2, “Infrastruktur Kunci Publik: easy-rsa) by using the TrustedUserCAKeys and HostCertificate directives in /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
Vice-versa the clients can also be configured to trust the host key signed by the same authority, making it easier to maintain the known_hosts file (even system wide via /etc/ssh/known_hosts).
@cert-authority *.falcot.com ssh-rsa AAAA[..]
Both, public key and certificate authentication, can be used alongside each other.

9.2.1.3. Menggunakan Aplikasi-aplikasi X11 Jarak Jauh

Protokol SSH memungkinkan penerusan data grafis (sesi "X11", dari nama sistem grafis yang paling terkenal di Unix); server kemudian mempertahankan saluran khusus untuk data tersebut. Secara khusus, program grafis yang dijalankan dari jarak jauh dapat ditampilkan pada layar lokal server XFree86, dan seluruh sesi (masukan dan tampilan) akan aman. Karena fitur ini memungkinkan aplikasi remote untuk mengganggu sistem lokal, ini dinonaktifkan secara default. Anda dapat mengaktifkannya dengan menetapkan X11Forwarding yes di berkas konfigurasi server (/etc/ssh/sshd_config). Akhirnya, pengguna juga harus memintanya dengan menambahkan opsi -X untuk baris perintah ssh.

9.2.1.4. 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.
First, the user must authorize sharing their session. The GNOME graphical desktop environment includes that option via SettingsSharing (contrary to previous versions of Debian, where the user had to install and run vino). For this to work network-manager must be managing the network used (e.g. enable the managed mode for devices handled by ifupdown in /etc/NetworkManager/NetworkManager.conf). KDE Plasma still requires using krfb to allow sharing an existing session over VNC. For other graphical desktop environments, the x11vnc or tightvncserver commands (from the Debian packages of the same name) or tigervncserver (tigervnc-standalone-server) serve the same purpose and provide the vnc-server virtual package; you can make either of them available to the user with an explicit menu or desktop entry.
When the graphical session is made available by VNC, the administrator must connect to it with a VNC client. GNOME has vinagre and remmina for that, while the KDE project provides krdc (in the menu at KInternetRemote Desktop Client). There are other VNC clients that use the command line, such as xtightvncviewer from the homonym package or xtigervncviewer from the tigervnc-viewer Debian package. Once connected, the administrator can see what is going on, work on the machine remotely, and show the user how to proceed.