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 dipecah menjadi dua paket: bagian klien dalam paket openssh-client, dan server dalam paket openssh-server. Meta-paket ssh bergantung pada kedua bagian dan memfasilitasi instalasi keduanya (apt install ssh
).
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 membuat sepasang kunci pada mesin klien dengan ssh-keygen-t rsa
; kunci publik disimpan dalam ~/.ssh/id_rsa.pub
, sementara kunci privat disimpan dalam ~/.ssh/id_rsa
. Pengguna kemudian menggunakan ssh-copy-id server
untuk menambahkan kunci publik mereka ke berkas ~/.ssh/authorized_keys
pada server. Jika kunci privat tidak dilindungi dengan "frasa sandi" pada saat penciptaan, semua login berikutnya pada server akan bekerja tanpa kata sandi. Sebaliknya, kunci pribadi harus didekripsi setiap kali dengan memasukkan kata sandi. Untungnya, ssh-agent
memungkinkan kita untuk menjaga kunci privat dalam memori untuk tidak perlu secara teratur memasukkan kembali kata sandi. Untuk ini, Anda hanya menggunakan ssh-add
(sekali per sesi) asalkan sesi sudah terkait dengan instansi fungsional ssh-agent
. Debian mengaktifkannya secara default dalam sesi grafis, tapi ini dapat dinonaktifkan dengan mengubah /etc/X11/Xsession.options
. Untuk sesi konsol, Anda dapat secara manual memulainya dengan eval $(ssh-agent)
.
9.2.1.2. 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.3. 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.
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. Grafis lingkungan desktop GNOME di Jessie dan setelahnya menyertakan pilihan itu di panel konfigurasi (berbeda dengan versi Debian sebelumnya, di mana pengguna harus menginstal dan menjalankan vino
). KDE masih perlu menggunakan krfb
untuk memungkinkan berbagi sesi yang ada melalui VNC. Untuk lingkungan desktop grafis lainnya, perintah x11vnc
(dari paket Debian dengan nama yang sama) melayani tujuan yang sama; Anda dapat membuatnya tersedia untuk pengguna dengan ikon eksplisit.
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 → → ). Ada klien VNC lainnya yang menggunakan baris perintah, seperti xvnc4viewer
dalam paket Debian dengan nama yang sama. Setelah terhubung, administrator dapat melihat apa yang terjadi, bekerja pada mesin dari jarak jauh, dan menunjukkan ke pengguna bagaimana untuk melanjutkan.
VNC juga bekerja untuk pengguna ponsel, atau eksekutif perusahaan, yang kadang-kadang perlu untuk login dari rumah mereka untuk mengakses desktop remote seperti yang mereka gunakan di tempat kerja. Konfigurasi layanan seperti itu lebih rumit: Anda pertama memasang paket vnc4server, mengubah konfigurasi dari layar manajer untuk menerima permintaan XDMCP Query
(untuk gdm3
, ini dapat dilakukan dengan menambahkan Enable=true
di bagian "xdmcp" /etc/gdm3/daemon.conf
), dan akhirnya, memulai server VNC dengan inetd
sehingga sesi secara otomatis dimulai ketika pengguna mencoba untuk login. Misalnya, Anda dapat menambahkan baris ini untuk /etc/inetd.conf
:
5950 stream tcp nowait nobody.tty /usr/bin/Xvnc Xvnc -inetd -query localhost -once -geometry 1024x768 -depth 16 securitytypes=none
Mengarahkan koneksi masuk ke manajer tampilan memecahkan masalah otentikasi, karena hanya pengguna dengan akun lokal yang akan melewati layar login gdm3
(atau yang setara kdm
, xdm
, dll). Karena operasi ini memungkinkan beberapa login simultan tanpa masalah (asal server cukup kuat), bahkan dapat digunakan untuk menyediakan desktop yang lengkap bagi pengguna ponsel (atau untuk sistem desktop yang kurang kuat, dikonfigurasi sebagai thin client). Pengguna cukup login ke layar server dengan vncviewer server:50
, karena port yang digunakan adalah 5950.