sshdを動かしてみる

 実はこれをやろうとしてはまったのだ【爆】

 で、途中になっていたので、やっぱりやってみる事にする。

 参考

  http://osksn2.hep.sci.osaka-u.ac.jp/~naga/miscellaneous/winssha-1.html

  http://sakura.ducub.com/cgi/a-column/data/soft/1014123354.html

 必要項目のインストール

  Cygwinのsetup.exeを起動して、以下の項目をインストールする。

        • cygrunsrv[Admin]
        • openssh[Net]

 環境変数の修正。

  c:?/cygwinにインストールしてるものとして話は続く。あと、Windowsの管理者権限なんかがないとマズイかもしれない。

  マイコンピュータを右クリックしてプロパティを表示。

  詳細タブをクリック。

  環境変数ボタンをクリック。

  システム環境変数のPathを選択し、編集ボタンをクリック。変数値に'c:?cygwin?bin?'を追加。

  システム環境変数の新規ボタンをクリック。変数名に'CYGWIN'、変数値に'binmode ntsec ntea tty'*1を入力。

 sshdの起動準備。

  cygwinを起動して、

$ ssh-host-config -y

  なにやら必要なファイルを自動的に作ったあと、環境変数'CYGWIN'の入力を求めてくるが、デフォルトの'ntsec'のままで良いのでそのままreturn。

  'Host configuration finished. Have fun!'と表示されたら終了。

 パーミッションの変更。

  /etc以下のsshd関連ファイルのパーミッションを変更。cgywin上で、

$ chown system.system /etc/ssh_host*_key

$ chmod 600 /etc/ssh_host*_key

 Windowsへのサービス登録を行なう。

  マイコンピュータを右クリックして管理ダイアログを表示。

  「サービスとアプリケーション→サービス」を選択。

  右のリストに'CYGWIN sshd'があるはずなので、それを選択してサービスの開始ボタンをクリック。

 この状態でcygwinから、

$ ssh localhost

 でログイン出来ればオッケー・・・ なんだけど、ログインした途端に接続を切られてしまう(?_?)

 いろいろ調べてみたのだが、行き着いたところは、

  http://www.cygwin.com/ml/cygwin-announce/2004-08/msg00031.html

 で、この中に、

Thanks to an early bug report on the cygwin mailing list, I found that

you *must* add the -r option when starting the sshd daemon, if you want

to use privilege separation. Either that, or disable privilege separation

in /etc/sshd_config by setting

UsePrivilegeSeparation no

とあった(-_-;) 要は"バグってるから、privilege separation(特権分離機能)使うなら-rオプションつけてsshdを起動してね。それじゃなかったらこの機能は使わないよーに。"ということ。特に使うつもりもないので【笑】

 /etc/sshd_configのUsePrivilegeSeparationをno

にして*2sshdを再起動。

$ net stop "CYGWIN sshd"

$ net start "CYGWIN sshd"

 再度、

$ ssh localhost

 今度は無事ログインに成功(-o-;)

*1:これでいいのかどうか、ちょっと怪しい【爆】

*2:ssh-host-configの時、'Should privilege separation be used? (yes/no)'で'no'としておけば、この苦労は不要らしい。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です