Instalasi dan konfigurasi server SFTP (SSH FTP) di Windows berdasarkan OpenSSH

Menggunakan paket OpenSSH resmi untuk Windows, Anda dapat dengan mudah mengatur pertukaran file aman antara klien dan server Windows menggunakan protokol transfer file aman SFTP (Aman FTP). Pada artikel ini, kami akan menunjukkan cara menggunakan Win32-OpenSSH untuk menginstal server SFTP pada Windows 10 atau Windows Server 2016 / 2012R2.

Konten:

  • Fitur SFTP
  • Menerapkan SFTP pada Sistem Windows
  • Menginstal Win32 OpenSSH pada Windows 10 1803 + / Windows Server 2019
  • Menginstal Win32 OpenSSH pada Windows Server 2016/2012 R2
  • Menguji Koneksi SFTP Menggunakan WinSCP
  • Menghapus Layanan Open32 OpenSSH

Fitur SFTP

Protokol SFTP (Protokol Transfer File Aman , FTP yang aman atau SSH FTP) adalah perpanjangan dari protokol SSH, yang merupakan standar dalam dunia sistem UNIX / Linux. Meskipun dari sudut pandang pengguna mirip dengan FTP, tetapi pada kenyataannya itu adalah protokol yang sama sekali berbeda yang tidak ada hubungannya dengan FTP. Data antara klien dan server ditransmisikan pada port 22 melalui terowongan SSH.

Manfaat Utama SFTP:

  • File dan perintah ditransfer di dalam sesi SSH yang aman;
  • Koneksi tunggal digunakan untuk mentransfer file dan perintah;
  • Dukungan untuk tautan simbolik, gangguan, melanjutkan, mentransfer, penghapusan file, dll. Fungsi;
  • Sebagai aturan, pada saluran di mana FTP lambat atau terputus-putus, koneksi SFTP lebih dapat diandalkan dan lebih cepat;
  • Otentikasi dengan kunci SSH.
Tidak perlu membingungkan SFTP dan FTPS. FTPS pada dasarnya adalah FTP reguler dengan sertifikat SSL, sementara SFTP adalah transfer data dan perintah FTP di dalam SSH.

Menerapkan SFTP pada Sistem Windows

Secara historis, sistem operasi Windows tidak memiliki alat bawaan untuk mengatur server SFTP yang aman. Untuk keperluan ini, solusi terbuka atau komersial biasanya digunakan, misalnya, Core FTP, FileZilla, CYGWIN, OpenSSH, FTP Shell, IPSwitch, dll. Namun, beberapa tahun yang lalu Microsoft merilis versi port OpenSSH untuk win32. Proyek ini disebut Menang32-openssh.

Pertimbangkan proses pengaturan server SFTP di Windows 10 dan Windows Server 2016/2012 R2 menggunakan paket Win32-OpenSSH.

Menginstal Win32 OpenSSH pada Windows 10 1803 + / Windows Server 2019

Di Windows 10, dimulai dengan build 1803, dan di Windows Server 2019, paket OpenSSH (seperti RSAT) sudah termasuk dalam sistem operasi sebagai Feature on Demand (FoD).

Pada Windows 10 dan Windows Server 2019, Anda dapat menginstal server OpenSSH menggunakan cmdlet PowerShell:

Add-WindowsCapability -Online -Name OpenSSH.Server *

Atau menggunakan DISM:
dism / Online / Add-Capability /CapabilityName:OpenSSH.Server ~~.0.0.0.0

Atau Anda dapat menginstal OpenSSH dari Windows 10 GUI (Pengaturan -> Aplikasi -> Fitur opsional -> Tambahkan fitur -> Buka ssh server -> Instal).

Executable OpenSSH terletak di direktori:

c: \ windows \ system32 \ OpenSSH \

File konfigurasi sshd_config terletak di direktori C: \ ProgramData \ ssh (direktori tersebut dibuat setelah layanan dimulai pertama kali).

Log - c: \ windows \ system32 \ OpenSSH \ logs \ sshd.log

File dan kunci yang diotorisasi disimpan di% USERPROFILE% \. Ssh \.

Pelajari lebih lanjut tentang menggunakan OpenSSH untuk terhubung ke Windows 10 / Windows Server 2019 melalui terowongan SSH yang aman..

Menginstal Win32 OpenSSH pada Windows Server 2016/2012 R2

Dalam versi Windows 10 dan Windows Server 2016/2012 R2 sebelumnya, Anda harus mengunduh dan menginstal OpenSSH dari GitHub (https://github.com/PowerShell/Win32-OpenSSH/releases). Kami membutuhkan versi untuk versi 64-bit Windows: Openssh-Menang64.zip (3,5 Mb).

  1. Buka kemasan isi arsip ke direktori target, misalnya: C: \ OpenSSH-Win
  2. Kami memulai baris perintah PowerShell dengan hak administrator dan pergi ke direktori OpenSSH:Cd C: \ OpenSSH-Win
  3. Tambahkan path ke direktori OpenSSH ke variabel lingkungan Path;
  4. Instal OpenSSH Server: .\ install-sshd.ps1 (pesan hijau “layanan sshd dan ssh-agent berhasil diinstal” akan muncul);
  5. Hasilkan kunci SSH untuk server (diperlukan untuk memulai layanan sshd):ssh-keygen.exe -A 
    ssh-keygen: menghasilkan kunci host baru: RSA DSA ECDSA ED25519

    Saat kesalahan terjadi

     ssh-keygen: menghasilkan kunci host baru: RSA Tidak dapat menyimpan kunci publik Anda di __PROGRAMDATA __ \\ ssh / ssh_host_rsa_key.bxKmOcF49P: Tidak ada file atau direktori seperti itu

    , pastikan direktori% programdata% \ ssh dibuat.

  6. Aktifkan autorun untuk layanan SSHD dan mulai gunakan perintah manajemen layanan PowerShell berikut:Set-Layanan -Nama sshd -StartupType 'Otomatis'
    Mulai-Layanan sshd
  7. Menggunakan PowerShell, buka TCP port 22 di firewall Windows untuk lalu lintas masuk ke server SSH:New-NetFirewallRule -Protocol TCP -LocalPort 22 -Input Arah -Aksi Izinkan -DisplayName SSH
  8. Buka file konfigurasi "C: \ ProgramData \ SSH \ sshd_config" di setiap editor teks, temukan dan periksa nilai direktif Subsistem sftp. File harus ditentukan di sini. sftp-server.exe. Pertimbangkan arahan yang berguna dalam file konfigurasi sshd_config:
    AllowGroups corp \ admingroup # mengizinkan akses ke OpenSSH hanya untuk pengguna dari grup ini AuthenticationMethods passwords # mengaktifkan otentikasi kata sandi (kunci SSH tidak dapat digunakan) ForceCommand internal-sftp # ChrootDirectory C: \ inetpub \ wwwroot \ ftpfolder # direktori default untuk pengguna SFTP 

Menguji Koneksi SFTP Menggunakan WinSCP

Mari kita coba sambungkan ke server SSH yang kita angkat menggunakan protokol SFTP. Untuk tujuan ini kami akan menggunakan klien gratis Winscp.

Di jendela pengaturan koneksi, pilih protokol transfer file SFTP, tentukan nama server dan data akun Windows di mana koneksi dibuat (juga dimungkinkan untuk mengkonfigurasi otorisasi kunci).Ketika Anda terhubung untuk pertama kalinya, sebuah jendela muncul memperingatkan bahwa kunci host tidak ada dalam cache lokal.

Jika semuanya dikonfigurasi dengan benar, klien harus terhubung ke server SFTP dan menampilkan daftar file di direktori home pengguna (secara default, direktori dengan profil pengguna).

Menggunakan antarmuka manajer file yang sudah dikenal, Anda dapat dengan aman menyalin file antara server dan klien. File akan ditransfer menggunakan protokol SFTP yang aman.

Menghapus Layanan Open32 OpenSSH

Untuk menghapus layanan Win32 OpenSSH dengan benar dari sistem:

  1. Buka konsol admin Powershell
  2. Hentikan layanan SSHD:Stop-Service sshd
  3. Hapus layanan OpenSSD: Hapus kunci:.\ uninstall-sshlsa.ps1
    sshd berhasil dihapus ssh-agent berhasil dihapus