SSHの構成
この項では、ホストへのCygwinのインストール後に、SSHを構成してCygwinの設定をテストする方法について説明します。
ノート:
SSHを構成する場合、状況によってはcygwin.bat
スクリプトを実行する必要があります。cygwin.bat
の実行中は、必ず管理者モードで起動してください。これを行うには、cygwin.bat
ファイルを右クリックし、「管理者として実行」を選択します。
SSHを構成してCygwinの設定をテストするには、次のステップを実行します。
- 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
- Cygwin
(cygrunsrv)
が正しくインストールされたかどうかを確認するには、C:\cygwin\Cygwin.bat
を実行し、次のコマンドを実行します。cygrunsrv -h
Cygwinが正しくインストールされている場合、すべてのCygwinヘルプ・オプションが画面に表示されます。ただし、このコマンドでエラー・メッセージが返される場合、状況に応じてCygwinを再インストールする必要があります。
- 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!
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)
-
- (ドメイン・ユーザーのみ)管理エージェントをインストールするホストに接続するために使用するユーザーがドメイン・ユーザーである場合、次の手順を実行して、SSHデーモンを起動します。
- 「マイ コンピュータ」を右クリックし、「管理」を選択します。
- 表示される「コンピュータの管理」ダイアログ・ボックスで、「サービスとアプリケーション」に移動し、「CYGWIN sshd」を選択します。
- 「CYGWIN sshd」を右クリックし、「プロパティ」を選択します。
- 「プロパティ」ダイアログ・ボックスで、「ログオン」タブに移動します。
- ここで、ドメイン/ユーザー名、およびパスワードを指定します。「適用」をクリックします。
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
- 次のいずれかのステップを実行し、SSHデーモンを起動します。
C:\cygwin\Cygwin.bat
を実行し、次のコマンドを実行します。/usr/sbin/sshd
または
C:\cygwin\Cygwin.bat
を実行し、次のコマンドを実行します。cygrunsrv -S sshd
または
次のステップを実行します。
-
「マイ コンピュータ」を右クリックし、「管理」を選択します。
-
表示される「コンピュータの管理」ダイアログ・ボックスで、「サービスとアプリケーション」に移動し、「CYGWIN sshd」を選択します。
-
「CYGWIN sshd」をクリックし、「開始」ボタンをクリックします。
ノート:
SSHデーモンが起動しない場合、
c:\cygwin\var\log\sshd.log
ファイルを参照して、起動に失敗した理由を確認してください。 -
- これで、Cygwinの設定をテストできます。これを行うには、別のマシン(
ssh
クライアントが稼働しているマシン)に移動し、次のコマンドを実行します。ssh -l <USERNAME> <localhost> 'date' OR ssh -l <USERNAME> <this node> 'date'
たとえば、
ssh -l pjohn example.com 'date'
このコマンドはパスワードの指定を求めるプロンプトを表示します。正しいパスワードを指定すると、このコマンドにより正確な日付が返されます。
ノート:
SSHの構成後に、プロセス分岐化の失敗、メモリー・リーク・エラーまたはファイル・アクセス・エラーが発生した場合、次のWebサイトを参照して対処方法を確認してください。
問題の対処方法を見つけることができない場合、次のWebサイトを使用してCygwinコミュニティにその問題をレポートしてください。