GNU/Linux >> Belajar Linux >  >> Linux

Panduan pemula untuk SSH untuk koneksi jarak jauh di Linux

Salah satu fitur Linux yang paling menarik adalah kemampuan untuk menggunakan komputer dengan terampil tanpa apa pun kecuali perintah yang dimasukkan ke keyboard—dan lebih baik lagi, untuk dapat melakukannya di komputer di mana pun di dunia. Berkat OpenSSH, pengguna POSIX dapat membuka shell aman di komputer mana pun yang mereka miliki izin untuk mengakses dan menggunakannya dari lokasi yang jauh. Ini adalah tugas harian bagi banyak pengguna Linux, tetapi dapat membingungkan bagi seseorang yang belum mencobanya. Artikel ini menjelaskan cara mengonfigurasi dua komputer untuk koneksi secure shell (SSH), dan cara menghubungkan satu komputer ke komputer lain dengan aman tanpa kata sandi.

Terminologi

Ketika membahas lebih dari satu komputer, dapat membingungkan untuk mengidentifikasi satu dari yang lain. Komunitas TI memiliki istilah yang mapan untuk membantu memperjelas deskripsi proses jaringan komputer bersama.

  • Layanan: Layanan adalah perangkat lunak yang berjalan di latar belakang sehingga dapat digunakan oleh komputer selain yang diinstal. Misalnya, server web menghosting layanan berbagi web . Istilah ini menyiratkan (tetapi tidak menegaskan) bahwa itu adalah perangkat lunak tanpa antarmuka grafis.
  • Tuan rumah: Sebuah host adalah komputer apapun. Dalam TI, komputer disebut host karena secara teknis komputer mana pun dapat meng-host aplikasi yang berguna untuk beberapa komputer lain. Anda mungkin tidak menganggap laptop Anda sebagai "host", tetapi Anda mungkin menjalankan beberapa layanan yang berguna untuk Anda, ponsel Anda, atau komputer lain.
  • Lokal: Komputer lokal adalah komputer yang Anda atau beberapa perangkat lunak gunakan. Setiap komputer menyebut dirinya sebagai localhost , misalnya.
  • Jarak jauh: Komputer jarak jauh adalah komputer yang tidak Anda lihat atau gunakan secara fisik. Ini adalah komputer di jarak jauh lokasi.

Sekarang terminologi sudah ditentukan, Anda bisa mulai.

Aktifkan SSH di setiap host

Agar dua komputer dapat terhubung melalui SSH, setiap host harus memiliki SSH yang terinstal. SSH memiliki dua komponen:perintah yang Anda gunakan pada mesin lokal Anda untuk memulai koneksi, dan server untuk menerima permintaan koneksi yang masuk. Beberapa komputer dilengkapi dengan satu atau kedua bagian SSH yang sudah diinstal. Perintah bervariasi, tergantung pada sistem Anda, untuk memverifikasi apakah Anda telah menginstal perintah dan server, jadi metode termudah adalah mencari file konfigurasi yang relevan:

$ file /etc/ssh/ssh_config
/etc/ssh/ssh_config: ASCII text

Haruskah ini mengembalikan No such file or directory error, maka Anda belum menginstal perintah SSH.

Lakukan pemeriksaan serupa untuk layanan SSH (perhatikan d dalam nama file):

$ file /etc/ssh/sshd_config
/etc/ssh/sshd_config: ASCII text

Instal satu atau yang lain, sesuai kebutuhan:

$ sudo dnf install openssh-clients openssh-server

Di komputer jarak jauh, aktifkan layanan SSH dengan systemd:

$ sudo systemctl enable --now sshd

Sebagai alternatif, Anda dapat mengaktifkan layanan SSH dari dalam Pengaturan Sistem di GNOME atau Preferensi Sistem di macOS. Pada desktop GNOME, itu terletak di Berbagi panel:

Mulai shell aman

Lebih banyak sumber daya Linux

  • Lembar contekan perintah Linux
  • Lembar contekan perintah Linux tingkat lanjut
  • Kursus online gratis:Ikhtisar Teknis RHEL
  • Lembar contekan jaringan Linux
  • Lembar contekan SELinux
  • Lembar contekan perintah umum Linux
  • Apa itu container Linux?
  • Artikel Linux terbaru kami

Sekarang setelah Anda menginstal dan mengaktifkan SSH di komputer jarak jauh, Anda dapat mencoba masuk dengan kata sandi sebagai ujian. Untuk mengakses komputer jarak jauh, Anda harus memiliki akun pengguna dan kata sandi.

Pengguna jarak jauh Anda tidak harus sama dengan pengguna lokal Anda. Anda dapat masuk sebagai pengguna mana pun di mesin jarak jauh selama Anda memiliki kata sandi pengguna tersebut. Misalnya, saya sethkenlon di komputer kantor saya, tapi saya seth di komputer pribadi saya. Jika saya menggunakan komputer pribadi saya (menjadikannya mesin lokal saya saat ini) dan saya ingin SSH ke komputer kerja saya, saya dapat melakukannya dengan mengidentifikasi diri saya sebagai sethkenlon dan menggunakan kata sandi kerja saya.

Untuk memasukkan SSH ke komputer jarak jauh, Anda harus mengetahui alamat protokol internet (IP) atau nama host yang dapat dipecahkan. Untuk menemukan alamat IP mesin jarak jauh, gunakan ip perintah (pada komputer jarak jauh):

$ ip addr show | grep "inet "
inet 127.0.0.1/8 scope host lo
inet 10.1.1.5/27 brd 10.1.1.31 [...]

Jika komputer jarak jauh tidak memiliki ip perintah, coba ifconfig sebagai gantinya (atau bahkan ipconfig di Windows).

Alamat 127.0.0.1 adalah alamat khusus dan sebenarnya adalah alamat localhost . Ini adalah alamat "loopback", yang digunakan sistem Anda untuk menjangkau dirinya sendiri. Itu tidak berguna saat masuk ke mesin jarak jauh, jadi dalam contoh ini, alamat IP komputer jarak jauh yang benar adalah 10.1.1.5. Dalam kehidupan nyata, saya akan tahu itu karena jaringan lokal saya menggunakan subnet 10.1.1.0. Jika komputer jarak jauh berada di jaringan yang berbeda, maka alamat IP bisa berupa apa saja (tidak pernah 127.0.0.1), dan beberapa perutean khusus mungkin diperlukan untuk menjangkaunya melalui berbagai firewall. Asumsikan komputer jarak jauh Anda berada di jaringan yang sama, tetapi jika Anda tertarik untuk menjangkau komputer yang lebih jauh daripada jaringan Anda sendiri, baca artikel saya tentang membuka port di firewall Anda.

Jika Anda dapat melakukan ping ke mesin jarak jauh dengan alamat IP-nya atau nama hostnya, dan memiliki akun login di dalamnya, maka Anda dapat SSH ke dalamnya:

$ ping -c1 10.1.1.5
PING 10.1.1.5 (10.1.1.5) 56(84) bytes of data.
64 bytes from 10.1.1.5: icmp_seq=1 ttl=64 time=4.66 ms
$ ping -c1 akiton.local
PING 10.1.1.5 (10.1.1.5) 56(84) bytes of data.

Itu sukses. Sekarang gunakan SSH untuk masuk:

$ whoami
seth
$ ssh [email protected]
bash$ whoami
sethkenlon

Login percobaan berfungsi, jadi sekarang Anda siap untuk mengaktifkan login tanpa kata sandi.

Buat kunci SSH

Untuk masuk dengan aman ke komputer lain tanpa kata sandi, Anda harus memiliki kunci SSH. Anda mungkin sudah memiliki kunci SSH, tetapi tidak ada salahnya untuk membuat yang baru. Kunci SSH memulai hidupnya di mesin lokal Anda. Ini terdiri dari dua komponen:kunci pribadi, yang tidak pernah Anda bagikan dengan siapa pun atau apa pun, dan kunci publik, yang Anda salin ke mesin jarak jauh mana pun yang ingin Anda akses tanpa kata sandi.

Beberapa orang membuat satu kunci SSH dan menggunakannya untuk semuanya, mulai dari login jarak jauh hingga autentikasi GitLab. Namun, saya menggunakan kunci yang berbeda untuk kelompok tugas yang berbeda. Misalnya, saya menggunakan satu kunci di rumah untuk mengautentikasi ke mesin lokal, kunci yang berbeda untuk mengautentikasi ke server web yang saya kelola, yang terpisah untuk host Git, satu lagi untuk repositori Git yang saya host, dan seterusnya. Dalam contoh ini, saya akan membuat kunci unik untuk digunakan di komputer dalam jaringan area lokal saya.

Untuk membuat kunci SSH baru, gunakan ssh-keygen perintah:

$ ssh-keygen -t ed25519 -f ~/.ssh/lan

-t opsi singkatan dari ketik dan memastikan bahwa enkripsi yang digunakan untuk kunci lebih tinggi dari standar. -f opsi singkatan dari file dan menetapkan nama file dan lokasi kunci. Anda akan diminta untuk membuat kata sandi untuk kunci SSH Anda. Anda harus membuat kata sandi untuk kunci tersebut. Ini berarti Anda harus memasukkan kata sandi saat menggunakan kunci, tetapi kata sandi itu tetap lokal dan tidak dikirimkan melalui jaringan. Setelah menjalankan perintah ini, Anda memiliki kunci pribadi SSH yang disebut lan dan kunci publik SSH yang disebut lan.pub .

Untuk mendapatkan kunci publik ke mesin jarak jauh Anda, gunakan ssh-copy-id . Agar ini berfungsi, Anda harus memverifikasi bahwa Anda memiliki akses SSH ke mesin jarak jauh. Jika Anda tidak dapat masuk ke host jarak jauh dengan kata sandi, Anda juga tidak dapat mengatur masuk tanpa kata sandi:

$ ssh-copy-id -i ~/.ssh/lan.pub [email protected]

Selama proses ini, Anda akan diminta memasukkan sandi login di host jarak jauh.

Setelah berhasil, coba masuk lagi, tetapi kali ini menggunakan -i opsi untuk mengarahkan perintah SSH ke kunci yang sesuai (lan , dalam contoh ini):

$ ssh -i ~/.ssh/lan [email protected]
bash$ whoami
sethkenlon

Ulangi proses ini untuk semua komputer di jaringan Anda, dan Anda akan dapat menjelajahi setiap host tanpa harus memikirkan kata sandi lagi. Faktanya, setelah Anda mengatur otentikasi tanpa kata sandi, Anda dapat mengedit /etc/ssh/sshd_config file untuk melarang otentikasi kata sandi. Ini mencegah siapa pun menggunakan SSH untuk mengautentikasi ke komputer kecuali mereka memiliki kunci pribadi Anda. Untuk melakukannya, buka /etc/ssh/sshd_config dalam editor teks dengan sudo izin dan cari string PasswordAuthentication . Ubah baris default menjadi ini:

PasswordAuthentication no

Simpan dan restart server SSH (atau reboot saja):

$ sudo systemctl restart sshd && echo "OK"
OK
$

Menggunakan SSH setiap hari

OpenSSH mengubah pandangan Anda tentang komputasi. Anda tidak lagi terikat hanya pada komputer di depan Anda. Dengan SSH, Anda memiliki akses ke komputer mana pun di rumah Anda, atau server tempat Anda memiliki akun, dan bahkan perangkat seluler dan Internet of Things. Membuka kunci kekuatan SSH juga membuka kekuatan terminal Linux. Jika Anda tidak menggunakan SSH setiap hari, mulailah sekarang. Merasa nyaman dengannya, mengumpulkan beberapa kunci, hidup lebih aman, dan memperluas dunia Anda.


Linux
  1. Panduan terminal Linux untuk pemula

  2. Apa Itu CentOS – Panduan Pemula

  3. Pengelola bookmark SSH untuk Linux

  1. 5 Aplikasi Desktop Jarak Jauh Terbaik untuk Linux

  2. Apa Itu Linux? Panduan untuk Pengguna Non-teknis

  3. Perintah Linux untuk menunggu server SSH aktif

  1. Panduan Pemula untuk Menginstal Pop!_OS Linux

  2. Panduan Lengkap untuk Menggunakan AsciiDoc di Linux

  3. Bagaimana cara mengakhiri koneksi SSH yang tidak responsif di linux?