Secure Shell Protocol (SSH) adalah metode paling umum untuk mengontrol mesin jarak jauh melalui baris perintah di dunia Linux. SSH adalah Linux asli yang sebenarnya, dan juga mendapatkan popularitas di dunia Windows. Bahkan ada dokumentasi Windows resmi untuk SSH, yang mencakup pengontrolan mesin Windows menggunakan OpenSSH.
Artikel ini menjelaskan cara membuat koneksi SSH dari mesin Windows ke sistem Fedora 33 Linux menggunakan alat sumber terbuka PuTTY yang populer.
Cara menggunakan SSH
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
SSH menggunakan arsitektur client-server, di mana klien SSH membuat koneksi ke server SSH. Server SSH biasanya berjalan sebagai daemon sistem, sehingga sering disebut SSHD. Anda hampir tidak dapat menemukan distribusi Linux yang tidak datang dengan daemon SSH. Di Fedora 33, daemon SSH diinstal tetapi tidak diaktifkan.
Anda dapat menggunakan SSH untuk mengontrol hampir semua mesin Linux, apakah itu berjalan sebagai mesin virtual atau sebagai perangkat fisik di jaringan Anda. Kasus penggunaan yang umum adalah konfigurasi tanpa kepala dari perangkat yang disematkan, termasuk Raspberry Pi. SSH juga dapat digunakan untuk melakukan tunnel layanan jaringan lainnya. Karena lalu lintas SSH dienkripsi, Anda dapat menggunakan SSH sebagai lapisan transport untuk protokol apa pun yang tidak menyediakan enkripsi secara default.
Pada artikel ini, saya akan menjelaskan empat cara menggunakan SSH:1. cara mengkonfigurasi daemon SSH di sisi Linux, 2. cara mengatur koneksi konsol jarak jauh, 3. cara menyalin file melalui jaringan, dan 4 .cara melakukan tunnel protokol tertentu melalui SSH.
1. Konfigurasi SSHD
Sistem Linux (Fedora 33 dalam kasus saya) bertindak sebagai server SSH yang memungkinkan klien Putty SSH untuk terhubung. Pertama, periksa konfigurasi SSH daemon. File konfigurasi terletak di /etc/ssh/sshd_config
dan berisi banyak sakelar yang dapat diaktifkan dengan mengomentari baris terkait:
# $OpenBSD: sshd_config,v 1.100 2016/08/15 12:32:04 naddy Exp $
# This is the sshd server system-wide configuration file. See
# sshd_config(5) for more information.
# This sshd was compiled with PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin
# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented. Uncommented options override the
# default value.
Include /etc/ssh/sshd_config.d/*.conf
#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
Konfigurasi default, di mana tidak ada baris yang tidak diberi komentar, akan berfungsi untuk contoh ini. Periksa apakah daemon SSH sudah berjalan dengan mengetikkan systemctl status sshd
:
$ systemctl status sshd
● sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2018-06-22 11:12:05 UTC; 2 years 11 months ago
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 577 (sshd)
Tasks: 1 (limit: 26213)
CGroup: /system.slice/sshd.service
└─577 /usr/sbin/sshd -D [email protected],chacha20-[...]
Jika tidak aktif, mulai dengan systemctl start sshd
perintah.
2. Siapkan konsol jarak jauh
Di Windows, unduh penginstal Putty, lalu instal dan buka. Anda akan melihat jendela seperti ini:
Di Nama Inang (atau alamat IP) kolom input, masukkan informasi koneksi untuk sistem Linux Anda. Dalam contoh ini, saya menyiapkan mesin virtual Fedora 33 dengan adaptor jaringan penghubung yang dapat saya gunakan untuk menghubungi sistem di alamat IP 192.168.1.60
. Klik Buka , dan jendela seperti ini akan terbuka:
Ini adalah mekanisme keamanan SSH untuk mencegah serangan man-in-the-middle. Sidik jari dalam pesan harus cocok dengan kunci pada sistem Linux di /etc/ssh/ssh_host_ed25519_key.pub.
. Putty mencetak kunci sebagai hash MD5. Untuk memeriksa keasliannya, beralihlah ke sistem Linux, buka shell perintah, dan masukkan:
ssh-keygen -l -E md5 -f /etc/ssh/ssh_host_ed25519_key.pub
Outputnya harus sesuai dengan sidik jari yang ditunjukkan oleh Putty:
$ ssh-keygen -l -E md5 -f /etc/ssh/ssh_host_ed25519_key.pub
256 MD5:E4:5F:01:05:D0:F7:DC:A6:32 no comment (ED25519)
Konfirmasikan Peringatan Keamanan Putty dengan mengeklik Ya . Sidik jari sistem host sekarang ada di daftar kepercayaan PuTTY, yang terletak di registri Windows di bawah:
HKEY_CURRENT_USER\SOFTWARE\SimonTatham\PuTTY\SshHostKeys
Masukkan kredensial login Anda yang benar, dan Anda akan berada di konsol di direktori home Anda:
3. Salin file melalui jaringan
Selain konsol jarak jauh, Anda dapat menggunakan Putty untuk mentransfer file melalui SSH. Lihat di folder instalasi di bawah C:\\Program Files (x86)\\PuTTY
dan temukan pscp.exe
. Anda dapat menggunakan ini untuk menyalin file ke dan dari sistem Linux.
Buka prompt perintah dengan Windows + R dan masukkan cmd . Salin file MyFile.txt
dari direktori home pengguna Linux Anda ke direktori home Windows Anda dengan memasukkan:
C:\"Program Files (x86)"\PuTTY\pscp.exe [email protected]:/home/stephan/MyFile.txt .
Untuk menyalin file dari direktori home Windows ke direktori home pengguna Linux, masukkan:
C:\"Program Files (x86)"\PuTTY\pscp.exe MyFile.txt [email protected]:/home/stephan/
Seperti yang mungkin sudah Anda ketahui, struktur umum perintah salin adalah:
pscp.exe <source> <target>
4. Tunnel sebuah protokol
Bayangkan Anda memiliki mesin Linux yang menjalankan layanan berbasis HTTP untuk beberapa aplikasi arbitrer. Anda ingin mengakses layanan HTTP ini dari mesin Windows Anda melalui internet. Tentu saja, Anda tidak dapat mengekspos port TCP terkait ke publik karena:
- Server menjalankan HTTP, bukan HTTPS
- Tidak ada manajemen pengguna atau login sama sekali
Sepintas, sepertinya tugas yang mustahil untuk mengatur arsitektur ini tanpa menghasilkan kelemahan keamanan yang mengerikan. Tetapi SSH membuatnya relatif mudah untuk menyiapkan solusi yang aman untuk skenario ini.
Saya akan mendemonstrasikan prosedur ini dengan proyek perangkat lunak saya Pythonic. Berjalan sebagai container, Pythonic menampilkan dua port TCP:port TCP 7000 (editor utama) dan port TCP 8000 (editor kode-kode server-kode).
Untuk menginstal Pythonic di mesin Linux, jalankan:
podman pull pythonicautomation/pythonic
podman run -d -p 7000:7000 -p 8000:8000 pythonic
Beralih ke mesin Windows Anda, buka Putty, dan navigasikan ke Connection -> SSH -> Tunnels . Tambahkan dua port TCP yang ingin Anda teruskan:
- Sumber:
7000
/ Tujuan:localhost:7000
- Sumber:
8000
/ Tujuan:localhost:8000
Kemudian kembali ke Sesi bagian, dan buat koneksi SSH seperti yang Anda lakukan sebelumnya. Buka browser dan navigasikan ke http://localhost:7000
; Anda akan melihat layar seperti ini:
Anda telah berhasil mengonfigurasi penerusan port!
Peringatan :Jika Anda mengekspos TCP Port 22 ke publik, jangan gunakan kredensial login yang mudah ditebak. Anda akan menerima upaya login dari seluruh dunia yang mencoba mengakses mesin Linux Anda dengan kredensial standar yang umum. Sebagai gantinya, izinkan hanya klien yang dikenal untuk masuk. Pembatasan masuk ini dapat dicapai dengan menggunakan kriptografi kunci publik, yang menggunakan pasangan kunci di mana kunci publik disimpan di mesin host SSH, dan kunci pribadi tetap di klien.
Men-debug
Jika Anda kesulitan untuk terhubung ke mesin Linux Anda, Anda dapat mengikuti proses di daemon SSH Anda dengan:
journalctl -f -u sshd
Beginilah tampilan proses login biasa dengan LogLevel DEBUG :
Pelajari lebih lanjut
Artikel ini hampir tidak menggores permukaan tentang cara menggunakan SSH. Jika Anda mencari informasi tentang kasus penggunaan tertentu, Anda mungkin dapat menemukannya di antara banyak tutorial SSH di internet. Saya sering menggunakan Putty di tempat kerja karena konfigurasinya yang mudah dan interoperabilitas yang baik antar sistem operasi menjadikannya alat pisau Swiss Army untuk solusi konektivitas.