Computer >> Máy Tính >  >> Hệ thống >> máy chủ Windows

Cài đặt Máy chủ SFTP (SSH FTP) trên Windows với OpenSSH

Bạn có thể sử dụng gói OpenSSH chính thức dành cho Windows để dễ dàng tổ chức quá trình truyền tệp an toàn giữa máy khách và máy chủ Windows bằng SFTP ( FTP an toàn ) giao thức. Trong bài viết này, chúng tôi sẽ hướng dẫn cách sử dụng Win32-OpenSSH để chạy máy chủ SFTP trên Windows 10 hoặc Windows Server 2016/2012 R2.

Nội dung:

  • SFTP là gì?
  • Triển khai SFTP trong Windows
  • Cài đặt Win32 OpenSSH trên Windows 10 1803 + / Windows Server 2019
  • Cài đặt Win32 OpenSSH trên Windows Server 2016/2012 R2
  • Kiểm tra kết nối SFTP bằng WinSCP
  • Cách gỡ cài đặt Win32 OpenSSH?

SFTP là gì?

SFTP ( Bảo mật Giao thức truyền tệp , FTP an toàn hoặc SSH FTP ) là phần mở rộng của giao thức SSH, là một tiêu chuẩn trong thế giới của các hệ thống UNIX / Linux. Ở góc độ người dùng, nó tương tự như FTP, nhưng trên thực tế, nó là một giao thức hoàn toàn khác, không có điểm chung nào với FTP. Dữ liệu được truyền giữa máy khách và máy chủ thông qua đường hầm SSH (cổng TCP 22).

Ưu điểm chính của SFTP:

  1. Các tệp và lệnh được chuyển bên trong một phiên SSH an toàn;
  2. Một kết nối được sử dụng để gửi cả tệp và lệnh;
  3. Hỗ trợ các liên kết tượng trưng, ​​ngắt / tiếp tục truyền, chức năng xóa tệp, v.v.;
  4. Theo quy luật, trong các kênh mà FTP chậm hoặc không thành công, kết nối SFTP nhanh hơn và đáng tin cậy hơn;
  5. Khả năng xác thực bằng khóa SSH.
Đừng nhầm lẫn giữa giao thức SFTP và FTPS. FTPS về cơ bản chỉ là một FTP đơn giản với chứng chỉ SSL và SFTP là giao thức để gửi dữ liệu FTP và các lệnh bên trong phiên SSH.

Triển khai SFTP trong Windows

Trước đây, hệ điều hành Windows không cung cấp bất kỳ công cụ tích hợp nào để chạy một máy chủ SFTP an toàn. Vì những mục đích này, các giải pháp nguồn mở hoặc độc quyền, như Core FTP, FileZilla, CYGWIN, OpenSSH, FTP Shell, IPSwitch, v.v., đã được sử dụng. Tuy nhiên, vài năm trước Microsoft đã phát hành phiên bản cổng OpenSSH cho Win32. Dự án này được gọi là Win32-OpenSSH .

Hãy xem xét cấu hình của máy chủ SFTP chạy Windows 10 hoặc Windows Server 2019/2016/2012 R2 bằng cách sử dụng Win32 OpenSSH Bưu kiện.

Cài đặt Win32 OpenSSH trên Windows 10 1803 + / Windows Server 2019

Trong Windows 10 build 1803 trở lên và trong Windows Server 2019, gói OpenSSH đã được đưa vào hệ điều hành ở dạng Tính năng theo yêu cầu (FoD) như RSAT.

Bạn có thể cài đặt máy chủ OpenSSH trên Windows 10 và Windows Server 2019 bằng lệnh ghép ngắn PowerShell sau:

Add-WindowsCapability -Online -Name OpenSSH.Server*

Hoặc sử dụng DISM:
dism /Online /Add-Capability /CapabilityName:OpenSSH.Server~~~~0.0.1.0

Ngoài ra, bạn có thể thêm máy chủ OpenSSH từ Windows 10 GUI ( Cài đặt -> Ứng dụng -> Tính năng tùy chọn -> Thêm tính năng -> Mở máy chủ SSH -> Cài đặt ).

Cài đặt Máy chủ SFTP (SSH FTP) trên Windows với OpenSSH

  • Các tệp thực thi OpenSSH được đặt trong thư mục:c:\windows\system32\OpenSSH\;
  • sshd_config tệp cấu hình nằm trong thư mục:C:\ProgramData\ssh (thư mục này được tạo sau lần khởi động đầu tiên của dịch vụ sshd);
  • Tệp nhật ký:c:\windows\system32\OpenSSH\logs\sshd.log;
  • Tệp và khóa ủy quyền được lưu trữ trong một thư mục:%USERPROFILE%\.ssh\ .

Bây giờ bạn có thể kết nối với Windows 10 thông qua SSH giống như trong Linux.

Cài đặt Win32 OpenSSH trên Windows Server 2016/2012 R2

Trong các phiên bản trước của Windows 10 và Windows Server 2016/2012 R2, bạn phải tải xuống và cài đặt OpenSSH từ GitHub (https://github.com/PowerShell/Win32-OpenSSH/releases). Bạn cần tải xuống phiên bản gói cho Windows x64: OpenSSH-Win64.zip (3,5 MB).

  1. Giải nén kho lưu trữ vào thư mục đích:C:\ OpenSSH-Win;
  2. Khởi động cli PowerShell nâng cao và chuyển sang thư mục OpenSSH:Cd C:\OpenSSH-Win
  3. Thêm đường dẫn đến thư mục OpenSSH vào biến môi trường Đường dẫn (Thuộc tính Hệ thống -> tab Nâng cao -> Biến Môi trường -> Chọn và chỉnh sửa Đường dẫn biến hệ thống -> Thêm đường dẫn đến thư mục OpenSSH); Cài đặt Máy chủ SFTP (SSH FTP) trên Windows với OpenSSH
  4. Cài đặt máy chủ OpenSSH:.\install-sshd.ps1 (một thông báo màu xanh lục sẽ xuất hiện “ dịch vụ sshd và ssh-agent đã được cài đặt thành công ”); Cài đặt Máy chủ SFTP (SSH FTP) trên Windows với OpenSSH
  5. Tạo khóa SSH cho máy chủ (cần thiết để khởi động dịch vụ sshd):
    ssh-keygen.exe –A ssh-keygen: generating new host keys: RSA DSA ECDSA ED25519 Cài đặt Máy chủ SFTP (SSH FTP) trên Windows với OpenSSH
  6. Bật tự động khởi động cho dịch vụ SSHD và khởi động nó bằng các lệnh quản lý dịch vụ PowerShell sau:
    Set-Service -Name sshd -StartupType ‘Automatic’
    Start-Service sshd
  7. Khởi động lại máy tính của bạn:
    Restart-Computer
  8. Sử dụng PowerShell để mở cổng TCP 22 trong Tường lửa của Windows cho lưu lượng SSH đến: New-NetFirewallRule -Protocol TCP -LocalPort 22 -Direction Inbound -Action Allow -DisplayName SSH Cài đặt Máy chủ SFTP (SSH FTP) trên Windows với OpenSSH Lưu ý . Lệnh trước đó sẽ không hoạt động trong các phiên bản Windows dành cho máy tính để bàn cũ. Trong trường hợp này, một lệnh khác được sử dụng: netsh advfirewall firewall add rule name='SSH Port' dir=in action=allow protocol=TCP localport=22
  9. Mở tệp cấu hình SSHD (C:\ ProgramData \ SSH \ sshd_config) trong bất kỳ trình soạn thảo văn bản nào. Tìm và kiểm tra giá trị của Hệ thống con sftp chỉ thị. sftp-server.exe tệp phải được chỉ định ở đây. Cài đặt Máy chủ SFTP (SSH FTP) trên Windows với OpenSSH
Bạn có thể định cấu hình bổ sung các thông số sau trong tệp cấu hình sshd_config:

AllowGroups corp\sftp_users # chỉ cho phép kết nối với OpenSSH cho người dùng trong nhóm miền này

AuthenticationMethods password # bật xác thực mật khẩu (không thể sử dụng khóa SSH)
ForceCommand internal-sftp
ChrootDirectory C:\inetpub\wwwroot\ftpfolder # thư mục mặc định cho người dùng SFTP

Kiểm tra kết nối SFTP bằng WinSCP

Hãy thử kết nối với máy chủ SSH đã tạo bằng giao thức SFTP. Để làm điều đó, hãy sử dụng WinSCP miễn phí khách hàng.

Trong cửa sổ cấu hình kết nối, chọn SFTP làm giao thức truyền tệp, chỉ định tên máy chủ và thông tin đăng nhập của tài khoản Windows, được sử dụng để kết nối (cũng có thể định cấu hình xác thực khóa).

Cài đặt Máy chủ SFTP (SSH FTP) trên Windows với OpenSSH

Khi bạn cố gắng kết nối lần đầu tiên, thông báo sau về khóa máy chủ không được tìm thấy trong bộ đệm ẩn cục bộ sẽ xuất hiện.

Cài đặt Máy chủ SFTP (SSH FTP) trên Windows với OpenSSH

Nếu mọi thứ được định cấu hình chính xác, ứng dụng khách sẽ kết nối với máy chủ SFTP và hiển thị danh sách các tệp trong thư mục chính của người dùng (theo mặc định, đó là thư mục có hồ sơ người dùng).

Sử dụng giao diện trình quản lý tệp quen thuộc ( như Total Commander ), bạn có thể sao chép tệp giữa máy chủ và máy khách. Các tệp được chuyển bằng SFTP an toàn.

Cài đặt Máy chủ SFTP (SSH FTP) trên Windows với OpenSSH

Cách gỡ cài đặt Win32 OpenSSH?

Để gỡ cài đặt Win32 OpenSSH khỏi hệ thống của bạn một cách chính xác:

  1. Chạy phiên PowerShell nâng cao;
  2. Dừng dịch vụ SSHD:
    Stop-Service sshd
  3. Gỡ cài đặt dịch vụ sshd:.\uninstall-sshlsa.ps1
    sshd successfully uninstalled
    ssh-agent successfully uninstalled