HOWTO · Python

Windows での SFTP サーバーのセットアップ

このチュートリアルでは、Windows で SFTP サーバーをセットアップして SSH 機能を最大化する方法を示します。

SFTP サーバーを使用すると、安全なネットワーク プロトコルである SSH ファイル転送プロトコルを介してファイルやコンテンツにアクセスできます。 OS環境内で、SFTPサーバーをセットアップして、リソースを取得および送信できるようにすることができます。

この記事では、WinSCP ソフトウェアを使用して Windows で SFTP サーバーをセットアップする方法について説明します。

古い Windows 用の SFTP サーバーのセットアップ

Windows で SFTP サーバーをセットアップするには、PowerShell GitHub からダウンロードできる OpenSSH をインストールする必要があります。 こちらのLinux用インストールガイド環境をご確認いただけます。

msi または zip ファイルをダウンロードできますが、この記事では msi ファイルのみを使用します。

  • msi ファイルをインストールします。 その後、サービスに移動し、OpenSSH サーバーOpenSSH 認証エージェントのステータスを確認します。

    自動サービス

  • StatusStartup TyperunningAutomatic でない場合は、両方のサービスを右クリックして Properties を選択します。

    プロパティ

  • スタートアップの種類自動 に変更し、開始 をクリックして、OK を選択します。

    スタートアップの種類

  • OpenSSH 認証エージェント についても同じことを行います。 これで、両方のサービスが RunningAutomatic になるはずです。

    OpenSSH認証エージェント

新しい Windows 用の SFTP サーバーのセットアップ

  • 新しい Windows の場合、[設定] > [アプリ] > [オプション機能] に移動して、OpenSSH を取得できます。

    オプション機能

  • View Features を選択し、Add an optional feature ダイアログ ボックスで OpenSSH server を検索します。

    オプション機能の追加

  • OpenSSHサーバーチェックボックスオプションを選択し、インストールをクリックします。

    OpenSSH サーバー

  • その後、以下の PowerShell コマンドを使用して SSH サーバーを構成し、サーバーへの着信接続を許可します。
    New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH SSH Server' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22 -Program "C:\\Windows\\System32\\OpenSSH\\sshd.exe"
    
  • 設定が終わったら、OpenSSH server サービスを起動しましょう。 これを設定するには、検索バーでサービスを検索する必要があります。

    サービス検索

  • Windows サービスのリスト内でOpenSSH サーバーを見つけます。

    OpenSSH サーバー サービス

  • サービスを右クリックし、プロパティを選択します。

    プロパティ

  • スタートアップの種類自動 に変更し、開始 をクリックして、OK を選択します。

    スタートアップの種類

  • OpenSSH 認証エージェント についても同じことを行います。 これで、両方のサービスが RunningAutomatic になるはずです。

    OpenSSH認証エージェント

WinSCP を使用して SFTP クライアントをセットアップおよび構成する

WinSCP は GPL-3.0 専用のソフトウェアで、自由に使用および変更できます。 SSH File Transfer や Amazon S3 など、さまざまなプロトコル間で安全なファイル転送を実行できます。

Windows でのみ利用可能で、ダウンロード ページ からダウンロードできます。

  • ダウンロードしたら、インストーラー ファイルを実行し、お好みのインストール モードを選択します。

    インストールモードを選択

  • 使用許諾契約に同意し、標準インストールオプションを選択します。

    通常のインストール

  • 好みのユーザー インターフェイス スタイルを選択しますが、この記事では Commander を使用します。

    コマンダー

  • その後、インストールをクリックして、WinSCPアプリケーションを起動します。

    インストール

  • 起動すると、次のような画面が表示されます。

    起動画面

  • ホスト名を入力します。 localhost を使用します。 デフォルトのポート番号 22 を使用し、コンピューターの名前とパスワードを入力します。 その後、ログインボタンをクリックしてください。

    フルスクリーン

  • 以下の画面ダイアログが表示されるので、はいを選択する必要があります。

    画面ダイアログ

  • 成功すると、以下の画面が表示されます。

    成功

  • 成功しなかった場合、OpenSSH サービスが実行されていないため、以下のようなダイアログが表示されることがあります。前述の 2つの OpenSSH サービスを開始する必要があります。

    失敗

  • これで、ssh-keygen コマンドを使用して公開鍵ベースの認証を設定できます。
    ssh-keygen
    

    コマンドの出力は以下のとおりです。

    Generating public/private rsa key pair.
    Enter file in which to save the key (C:\Users\akinl/.ssh/id_rsa):
    Created directory 'C:\Users\akinl/.ssh'.
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in C:\Users\akinl/.ssh/id_rsa.
    Your public key has been saved in C:\Users\akinl/.ssh/id_rsa.pub.
    The key fingerprint is:
    SHA256:Ryrpy5HHTT1NK2OFzT3NjoIwORbzNV7/BfBfPLhHCEk akinl@Olorunfemi-PC
    The key's randomart image is:
    +---[RSA 3072]----+
    |        o .E=.o  |
    |         = +.Bo*.|
    |        * o oo*+O|
    |       o * o +o=*|
    |      o S + B.+.+|
    |     . + + . =.  |
    |      + o .      |
    |     . +         |
    |      o          |
    +----[SHA256]-----+
    

    ssh-keygen ツールがパスフレーズを要求する場合、パスフレーズを入力できますが、この記事では使用しません。 ssh-keygen.ssh という名前の隠しディレクトリを作成し、.ssh の下の id_rsa.pub ファイル内にキー ペアを保存しました。

    公開鍵のフル パスは C:\Users\akinl/.ssh/id_rsa.pub です。

    id_rsa

    公開鍵は id_rsa.pub ファイルで、秘密鍵は id_rsa です。

  • 秘密鍵と公開鍵を WinSCP にリンクするには、.ssh フォルダー内に authorized_keys という名前のファイルを作成する必要があります。 公開鍵の内容 id_rsa.pubauthorized_keys ファイルにコピーし、変更を保存します。 メモ帳などのテキスト エディタを使用できます。

    承認されたキー

  • .ssh ディレクトリには、少なくとも 3つのファイル (authorized_keysid_rsa、および id_rsa.pub) が必要です。

    SSH ディレクトリ

  • authorized_keys ファイルを安全に保ち、管理者またはコア ユーザーのみがアクセスできるようにするには、アクセス コントロール リスト (ACL) を構成する必要があります。 以下のコマンドを使用して、アクセス制御を構成します。
    icacls.exe "C:\Users\<username>\.ssh\authorized_keys" /inheritance:r /grant "Adminstrators:F" /grant "SYSTEM:F"
    
  • <username> を自分のユーザー名に変更します。
    icacls.exe "C:\Users\akinl\.ssh\authorized_keys" /inheritance:r /grant "Adminstrators:F" /grant "SYSTEM:F"
    

    コマンドの出力:

    processed file: C:\Users\akinl\.ssh\authorized_keys
    Successfully processed 1 file; Failed processing 0 files
    
  • したがって、同じ authorized_keys ファイルを開くと、以下のダイアログが表示されます。

    アクセス不可

  • SFTP サーバーを完全に構成するには、sshd_config ファイルを編集して公開鍵ベースの認証を設定する必要があります。 sshd_config ファイルは ProgramData ディレクトリにあります。 以下のフル パスを Windows エクスプローラーにコピーし、sshd_config ファイルを開きます。
    C:\ProgramData\ssh
    

    sshd_config ファイルは、ディレクトリ内の最後のファイルです。

    sshd_config

  • sshd_config ファイルの構成情報を含む行のコメントを外すか、変更して変更します。 また、Administrator として sshd_config ファイルを開きます。
    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys
    PasswordAuthentication no
    PermitEmptyPasswords no
    Subsystem sftp internal-sftp
    
    Match User <username>
    	X11Forwarding no
    	AllowTcpForwarding no
    	PermitTTY no
    	ForceCommand internal-sftp
    	PasswordAuthentication no
    

    さらに、<username> を自分のユーザー名に変更してください。 さらに、ファイル内の次の構成情報についてコメントすることができます。

    Match Group administrators
    	   AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
    
  • ssh_config ファイルへの変更は、以下の画像のようになります。

    ssh_config_edit

  • それでは、以前のユーザー名とパスワードのログイン方法を使用して WinSCP を開きましょう。

    サポートされている認証なし

    公開鍵認証のみをサポートするように構成ファイルを変更したため、サポートされなくなりました。 今すぐログインするには、公開鍵を使用する必要があります。

  • Password を使用する代わりに、Advanced ボタンをクリックします。

    高度なボタン

  • SSHの下の認証タブに移動します。

    認証

  • 認証パラメーター エリアで、秘密鍵ファイルを参照し、.ssh ディレクトリ (C:\Users\akinl\.ssh) に移動し、ファイル オプションを すべてのファイル に変更します。

    認証パラメーター

  • id_rsa ファイルを選択すると、以下のダイアログが表示されます。 OKを選択してください。

    OK

    その後、以下のダイアログが表示されます。

    変換された秘密鍵

  • 次に、OKをクリックします。

    設定を保存

  • 次に、ログインをクリックします。

    ログイン

    これで、公開鍵認証を使用して SFTP サーバーにアクセスできるようになりました。

    SSH経由でアクセス