GNU/Linux >> Belajar Linux >  >> Linux

Buat koneksi SSH antara Windows dan Linux

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:

  1. Server menjalankan HTTP, bukan HTTPS
  2. 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.


Linux
  1. Cara Mengonfigurasi Server SAMBA Dan Mentransfer File Antara Linux &Windows

  2. Linux – Bagikan File Antara Linux Host Dan Windows Guest?

  3. Perbedaan antara GNUWin32 dan cygwin

  1. Interoperabilitas Windows dan Linux:Sekilas tentang Samba

  2. Windows – Folder Bersama Antara Qemu Windows Guest dan Linux Host?

  3. Cara mengatur koneksi Wifi-Direct antara Android dan Linux

  1. Bagikan file antara komputer Linux dan Windows

  2. 11 Perintah "ssh" dan "scp" yang berguna di Linux

  3. Perbedaan antara perintah 'ifconfig' dan 'ip'