SSHの構成

この項では、ホストへのCygwinのインストール後に、SSHを構成してCygwinの設定をテストする方法について説明します。

ノート:

SSHを構成する場合、状況によってはcygwin.batスクリプトを実行する必要があります。cygwin.batの実行中は、必ず管理者モードで起動してください。これを行うには、cygwin.batファイルを右クリックし、「管理者として実行」を選択します。

SSHを構成してCygwinの設定をテストするには、次のステップを実行します。

  1. Cygwinのインストール後、C:\cygwinディレクトリに移動し、任意のエディタを使用して編集モードでCygwin.batファイルを開き、bashシェルを起動する前に次の行を追加します。

    set CYGWIN=binmode ntsec

    たとえば、前述の行を追加すると、Cygwin.batファイルの内容は次のようになります。

    @echo off
    
    C:
    chdir C:\cygwin\bin
    set CYGWIN=binmode ntsec
    bash --login -i
    
  2. Cygwin (cygrunsrv)が正しくインストールされたかどうかを確認するには、C:\cygwin\Cygwin.batを実行し、次のコマンドを実行します。
    cygrunsrv -h

    Cygwinが正しくインストールされている場合、すべてのCygwinヘルプ・オプションが画面に表示されます。ただし、このコマンドでエラー・メッセージが返される場合、状況に応じてCygwinを再インストールする必要があります。

  3. SSHDサービスを構成するには、C:\cygwin\Cygwin.batを実行し、次のコマンドを実行します。
    ssh-host-config

    コマンドを実行後、次のプロンプトが表示されます。

    *** Info: StrictModes is set to 'yes' by default.
    *** Info: This is the recommended setting, but it requires that the POSIX
    *** Info: permissions of the user's home directory, the user's .ssh
    *** Info: directory, and the user's ssh key files are tight so that
    *** Info: only the user has write permissions.
    *** Info: On the other hand, StrictModes don't work well with default
    *** Info: Windows permissions of a home directory mounted with the
    *** Info: 'noacl' option, and they don't work at all if the home
    *** Info: directory is on a FAT or FAT32 partition.
    *** Query: Should StrictModes be used? (yes/no) no
    *** Query: Should privilege separation be used? <yes/no>: yes
    *** Query: New local account 'sshd'? <yes/no>: yes
    *** Query: Do you want to install sshd as a service?
    *** Query: <Say "no" if it is already installed as a service> <yes/no>: yes
    *** Query: Enter the value of CYGWIN for the deamon: [] binmode ntsec
    *** Query: Do you want to use a different name? (yes/no) yes/no
    

    ここで、同じ名前(cyg_server)を使用する場合、noを入力します。その後、次のプロンプトが表示されます。

    *** Query: Create new privileged user account 'cyg_server'? (yes/no) yes
    *** Query: Please enter the password:
    *** Query: Renter:
    

    ただし、別の名前を付ける場合はyesを入力します。その後、次のプロンプトが表示されます。

    *** Query: Enter the new user name: cyg_server1
    *** Query: Reenter: cyg_server1
    *** Query: Create new privileged user account 'cyg_server1'? (yes/no) yes
    *** Query: Please enter the password:
    *** Query: Reenter:
    

    構成が成功すると、次のメッセージが表示されます。

    Host configuration finished. Have fun!
  4. c:\cygwin\etc\passwdファイルをバックアップし、任意のエディタを使用して編集モードでファイルを開きます。管理エージェントをインストールするホストに接続するために使用するユーザーのエントリのみを削除します。編集する前にc:\cygwin\etc\passwdファイルのバックアップを作成するように、ユーザーに依頼します。
    • 管理エージェントをインストールするホストに接続するために使用するユーザーがローカル・ユーザーである場合、C:\cygwin\Cygwin.batを実行し、次のコマンドを実行します。

      /bin/mkpasswd -l –u <USER> >> /etc/passwd (for example, /bin/mkpasswd -l -u pjohn >> /etc/passwd)

    • 管理エージェントをインストールするホストに接続するために使用するユーザーがドメイン・ユーザーである場合、C:\cygwin\Cygwin.batを実行し、次のコマンドを実行します。

      /bin/mkpasswd -d -u <USER> >> /etc/passwd (for example, /bin/mkpasswd -d -u pjohn >> /etc/passwd)
      mkdir -p /home/<USER>  (for example, mkdir -p /home/pjohn)
      chown <USER> /home/<USER> (for example, chown pjohn /home/pjohn)
      
  5. (ドメイン・ユーザーのみ)管理エージェントをインストールするホストに接続するために使用するユーザーがドメイン・ユーザーである場合、次の手順を実行して、SSHデーモンを起動します。
    1. 「マイ コンピュータ」を右クリックし、「管理」を選択します。
    2. 表示される「コンピュータの管理」ダイアログ・ボックスで、「サービスとアプリケーション」に移動し、「CYGWIN sshd」を選択します。
    3. 「CYGWIN sshd」を右クリックし、「プロパティ」を選択します。
    4. 「プロパティ」ダイアログ・ボックスで、「ログオン」タブに移動します。
    5. ここで、ドメイン/ユーザー名、およびパスワードを指定します。「適用」をクリックします。
    6. C:\cygwin\Cygwin.batを実行し、次のコマンドを実行します。
      chown <USERNAME> /var/log/sshd.log
      chown -R <USERNAME> /var/empty
      chown <USERNAME> /etc/ssh*
      chmod 755 /var/empty
      chmod 644 /var/log/sshd.log
      

      ノート:

      /var/log/sshd.logが存在しない場合は、次のコマンドを実行する必要はありません。

      chown <USERNAME> /var/log/sshd.log
      chmod 644 /var/log/sshd.log
  6. 次のいずれかのステップを実行し、SSHデーモンを起動します。

    C:\cygwin\Cygwin.batを実行し、次のコマンドを実行します。

    /usr/sbin/sshd

    または

    C:\cygwin\Cygwin.batを実行し、次のコマンドを実行します。

    cygrunsrv -S sshd

    または

    次のステップを実行します。

    1. 「マイ コンピュータ」を右クリックし、「管理」を選択します。

    2. 表示される「コンピュータの管理」ダイアログ・ボックスで、「サービスとアプリケーション」に移動し、「CYGWIN sshd」を選択します。

    3. 「CYGWIN sshd」をクリックし、「開始」ボタンをクリックします。


    「コンピュータの管理」ウィンドウ

    ノート:

    SSHデーモンが起動しない場合、c:\cygwin\var\log\sshd.logファイルを参照して、起動に失敗した理由を確認してください。

  7. これで、Cygwinの設定をテストできます。これを行うには、別のマシン(sshクライアントが稼働しているマシン)に移動し、次のコマンドを実行します。
    ssh -l <USERNAME> <localhost> 'date'
    
    OR
    
    ssh -l <USERNAME> <this node> 'date'
    

    たとえば、

    ssh -l pjohn example.com 'date'

    このコマンドはパスワードの指定を求めるプロンプトを表示します。正しいパスワードを指定すると、このコマンドにより正確な日付が返されます。

    ノート:

    SSHの構成後に、プロセス分岐化の失敗、メモリー・リーク・エラーまたはファイル・アクセス・エラーが発生した場合、次のWebサイトを参照して対処方法を確認してください。

    http://cygwin.com/faq.html 

    問題の対処方法を見つけることができない場合、次のWebサイトを使用してCygwinコミュニティにその問題をレポートしてください。

    http://cygwin.com/problems.html