Windows Server
 Computer >> コンピューター >  >> システム >> Windows Server

OpenSSHを使用したWindowsへのSFTP(SSH FTP)サーバーのインストール

Windows用の公式OpenSSHパッケージを使用すると、 SFTP を使用して、クライアントとWindowsサーバー間の安全なファイル転送を簡単に整理できます。 (セキュアFTP )プロトコル。この記事では、Win32-OpenSSHを使用してWindows10またはWindowsServer2016/2012R2でSFTPサーバーを実行する方法を示します。

内容:

  • SFTPとは何ですか?
  • WindowsでのSFTPの実装
  • Windows 10 1803 + / WindowsServer2019へのWin32OpenSSHのインストール
  • Windows Server2016/2012R2にWin32OpenSSHをインストールする
  • WinSCPを使用したSFTP接続のテスト
  • Win32 OpenSSHをアンインストールする方法は?

SFTPとは何ですか?

SFTP 安全 ファイル転送プロトコルセキュアFTP またはSSHFTP )はSSHプロトコルの拡張であり、UNIX/Linuxシステムの世界で標準となっています。ユーザーの観点からはFTPに似ていますが、実際には完全に異なるプロトコルであり、FTPとの共通点はありません。データは、SSHトンネル(TCPポート22)を介してクライアントとサーバー間で転送されます。

SFTPの主な利点:

  1. ファイルとコマンドは安全なSSHセッション内で転送されます;
  2. 1つの接続を使用してファイルとコマンドの両方を送信します。
  3. シンボリックリンク、割り込み/再開転送、ファイル削除機能などがサポートされています。
  4. 原則として、FTPが遅いか失敗しているチャネルでは、SFTP接続はより高速で信頼性が高くなります。
  5. SSHキーを使用して認証する可能性。
SFTPプロトコルとFTPSプロトコルを混同しないでください。 FTPSは基本的にSSL証明書を使用した単純なFTPであり、SFTPはSSHセッション内でFTPデータとコマンドを送信するためのプロトコルです。

WindowsでのSFTP実装

これまで、Windowsオペレーティングシステムには、安全なSFTPサーバーを実行するための組み込みツールはありません。これらの目的のために、Core FTP、FileZilla、CYGWIN、OpenSSH、FTP Shell、IPSwitchなどのオープンソースまたは独自のソリューションが使用されています。ただし、数年前、MicrosoftはWin32用のOpenSSHポートのバージョンをリリースしました。このプロジェクトはWin32-OpenSSHと呼ばれます 。

Win32 OpenSSHを使用してWindows10またはWindowsServer2019/2016/2012R2を実行しているSFTPサーバーの構成について考えてみましょう。 パッケージ。

Windows 10 1803 + / WindowsServer2019へのWin32OpenSSHのインストール

Windows10ビルド1803以降およびWindowsServer2019では、OpenSSHパッケージはRSATのようなFeature on Demand(FoD)の形式でオペレーティングシステムにすでに含まれています。

次のPowerShellコマンドレットを使用して、Windows10およびWindowsServer2019にOpenSSHサーバーをインストールできます。

Add-WindowsCapability -Online -Name OpenSSH.Server*

または、DISMを使用します:
dism /Online /Add-Capability /CapabilityName:OpenSSH.Server~~~~0.0.1.0

また、Windows 10 GUIからOpenSSHサーバーを追加することもできます(設定 ->アプリ ->オプション機能 ->機能を追加する ->SSHサーバーを開く ->インストール

OpenSSHを使用したWindowsへのSFTP(SSH FTP)サーバーのインストール

  • OpenSSH実行可能ファイルは次のディレクトリにあります:c:\windows\system32\OpenSSH\;
  • sshd_config 構成ファイルは次のディレクトリにあります:C:\ProgramData\ssh (このディレクトリは、sshdサービスの最初の開始後に作成されます);
  • ログファイル:c:\windows\system32\OpenSSH\logs\sshd.log;
  • authorized_keysファイルとキーは次のディレクトリに保存されます:%USERPROFILE%\.ssh\

これで、LinuxのようにSSH経由でWindows10に接続できます。

Windows Server2016/2012R2にWin32OpenSSHをインストールする

以前のバージョンのWindows10およびWindowsServer2016/2012 R2では、GitHub(https://github.com/PowerShell/Win32-OpenSSH/releases)からOpenSSHをダウンロードしてインストールする必要があります。 Windows x64のパッケージバージョンをダウンロードする必要があります: OpenSSH-Win64.zip (3.5 MB)。

  1. アーカイブをターゲットディレクトリに抽出します:C:\ OpenSSH-Win;
  2. 昇格されたPowerShellCLIを起動し、OpenSSHフォルダーに切り替えます:Cd C:\OpenSSH-Win
  3. OpenSSHディレクトリへのパスをPath環境変数に追加します([システムプロパティ]->[詳細設定]タブ->[環境変数]->パスを選択して編集します システム変数->OpenSSHフォルダーへのパスを追加します); OpenSSHを使用したWindowsへのSFTP(SSH FTP)サーバーのインストール
  4. OpenSSHサーバーをインストールします:.\install-sshd.ps1 (緑色のメッセージが表示されます。「sshdおよびssh-agentサービスが正常にインストールされました」 ”); OpenSSHを使用したWindowsへのSFTP(SSH FTP)サーバーのインストール
  5. サーバーのSSHキーを生成します(sshdサービスを開始するために必要):
    ssh-keygen.exe –A ssh-keygen: generating new host keys: RSA DSA ECDSA ED25519 OpenSSHを使用したWindowsへのSFTP(SSH FTP)サーバーのインストール
  6. SSHDサービスの自動開始を有効にし、次のPowerShellサービス管理コマンドを使用して開始します。
    Set-Service -Name sshd -StartupType ‘Automatic’
    Start-Service sshd
  7. コンピュータを再起動します:
    Restart-Computer
  8. PowerShellを使用して、着信SSHトラフィック用にWindowsファイアウォールのTCPポート22を開きます。 New-NetFirewallRule -Protocol TCP -LocalPort 22 -Direction Inbound -Action Allow -DisplayName SSH OpenSSHを使用したWindowsへのSFTP(SSH FTP)サーバーのインストール 。前のコマンドは、古いデスクトップWindowsバージョンでは機能しません。この場合、別のコマンドが使用されます。 netsh advfirewall firewall add rule name='SSH Port' dir=in action=allow protocol=TCP localport=22
  9. SSHD構成ファイル(C:\ ProgramData \ SSH \ sshd_config)を任意のテキストエディターで開きます。 サブシステムsftpの値を見つけて確認します 指令。 sftp-server.exe ここでファイルを指定する必要があります。 OpenSSHを使用したWindowsへのSFTP(SSH FTP)サーバーのインストール
さらに、sshd_config構成ファイルで次のパラメーターを構成できます。

AllowGroups corp\sftp_users # このドメイングループのユーザーに対してのみOpenSSHへの接続を許可する

AuthenticationMethods password # パスワード認証を有効にします(SSHキーは使用できません)
ForceCommand internal-sftp
ChrootDirectory C:\inetpub\wwwroot\ftpfolder # SFTPユーザーのデフォルトディレクトリ

WinSCPを使用したSFTP接続のテスト

SFTPプロトコルを使用して、作成したSSHサーバーに接続してみましょう。これを行うには、無料の WinSCPを使用します クライアント。

接続設定ウィンドウで、 SFTPを選択します ファイル転送プロトコルとして、接続に使用されるWindowsアカウントのサーバー名と資格情報を指定します(キー認証を構成することもできます)。

OpenSSHを使用したWindowsへのSFTP(SSH FTP)サーバーのインストール

初めて接続しようとすると、ローカルキャッシュにホストキーが見つからないという次の通知が表示されます。

OpenSSHを使用したWindowsへのSFTP(SSH FTP)サーバーのインストール

すべてが正しく構成されている場合、クライアントはSFTPサーバーに接続し、ユーザーのホームディレクトリ(デフォルトでは、ユーザープロファイルのあるディレクトリ)にあるファイルのリストを表示します。

おなじみのファイルマネージャインターフェースを使用する( Total Commander など) )、サーバーとクライアント間でファイルをコピーできます。ファイルは安全なSFTPを使用して転送されます。

OpenSSHを使用したWindowsへのSFTP(SSH FTP)サーバーのインストール

Win32OpenSSHをアンインストールする方法

システムからWin32OpenSSHを正しくアンインストールするには:

  1. 昇格されたPowerShellセッションを実行します;
  2. SSHDサービスを停止します:
    Stop-Service sshd
  3. sshdサービスをアンインストールします:.\uninstall-sshlsa.ps1
    sshd successfully uninstalled
    ssh-agent successfully uninstalled


  1. Windows 10 で FTP サーバーをセットアップおよび管理する方法

    Windows 10 のファイル転送プロトコル サーバーを使用すると、ユーザーは事実上どこからでも PC にファイルをダウンロードおよびアップロードできます。 FTP とも呼ばれるファイル転送プロトコル サーバーを使用する場合は、完全に制御できるプライベート クラウドを開発していることになります。さらに、速度はインターネット契約に依存し、毎月の転送上限はありません.ファイルサイズやタイプの制限や制限がないなど、他の利点があります。したがって、バックアップ ファイルが 1KB ほど小さいか、1 TB ほど大きいかは関係ありません。作成するアカウントの数に制限はないので、あなた、あなたの友人、同僚

  2. SSH サーバーを使用して障害のある Windows PC にアクセスする方法

    システムが突然クラッシュし、コマンドに応答しなくなることがあります。コンピューター上の重要なものにアクセスしたいが、コンピューターが動作していないためにアクセスできない場合、状態はさらに悪化します。 SSH サーバーを使用して障害のある Windows PC にアクセスし、問題を解決できるようになりました。ほとんどの人は SSH とは何かを知らないかもしれません。そのため、先に進む前に、SSH について簡単に理解しておきましょう。 SSH サーバーとは SSH (別名 Secure Shell) は、セキュリティで保護されていないネットワーク上でネットワーク サービスを安全に操作するため