Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

CYGWIN sshdが起動出来ません。

211 views
Skip to first unread message

KMochida

unread,
Nov 8, 2004, 5:47:03 AM11/8/04
to
よろしくお願い致します。

Win2kでcygwin1005.9.0.0を使用しています。


$ ps ax
PID PPID PGID WINPID TTY UID STIME COMMAND
2896 1 2896 2896 con 1000 15:54:05 /usr/bin/bash
I 2776 1 2776 2776 con 1000 16:57:24 /usr/bin/bash
I 1572 3352 1572 2312 0 1000 17:20:35 /usr/bin/bash
1804 2896 1804 2928 con 1000 17:23:05 /usr/bin/ps

$ cygrunsrv -S sshd
cygrunsrv: Error starting a service: QueryServiceStatus: Win32 error 1062:

そのサービスを開始できませんでした。
[(ローカルコンピュータ)CYGWIN sshdのプロパティ]で
[開始(S)]をクリックしてしたら
「ローカルコンピュータのCYGWIN sshdを開始できません。エラー1067:プロセスを途
中で強制終了しました。」
となってしまいます。

システム環境変数(S)には
C:\cygwin\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;
C:\masm32\bin;C:\masm32\lsic330c\BIN;C:\cygwin\old_borland\bcc55\Bin;c:\ptex
\bin;.\;C:\cygwin\gcc\GDS2K1~1\gds2k\BIN

となっています。

$ cp cygwin1.dll /sbin/cygwin1.dll

としましたがエラーは解消されません。

$ tail -f /var/log/sshd.log

Missing privilege separation directory: /var/empty

出てましたので

$ mkdir /var/empty

とすると

$ tail -f /var/log/sshd.log
/var/empty must be owned by root and not group or world-writable.

$ ls -l /var/ | grep empty
drwxr-xr-x+ 2 root なし 0 Nov 8 17:34 empty

$ chmod 777 /var/empty

$ ls -l /var/ | grep empty
drwxrwxrwx+ 2 root なし 0 Nov 8 17:34 empty

とすると

$ tail -f /var/log/sshd.log
/var/empty must be owned by root and not group or world-writable.

更には

$ chown SYSTEM /var/empty
$ ls -l /var/ | grep empty
drwxrwxrwx+ 2 SYSTEM なし 0 Nov 8 17:34 empty

とすると

$ ls -l /var/ | grep empty
drwxrwxrwx+ 2 root なし 0 Nov 8 17:34 empty

$ tail -f /var/log/sshd.log
/var/empty must be owned by root and not group or world-writable.

となってしまいます。
どうすれば起動出来るのでしょうか?

dev_...@anet.ne.jp

unread,
Nov 8, 2004, 6:02:07 AM11/8/04
to
KMochida wrote:
> となってしまいます。
> どうすれば起動出来るのでしょうか?
まずは /var/empty というキーワードで Google してみてください。

Yasushi Shinjo

unread,
Nov 8, 2004, 6:30:02 AM11/8/04
to
新城@筑波大学です。こんにちは。
Cygwin は普段使っていないのですが、SSH は使っています。

In article <cmnir9$m34$1...@caraway.media.kyoto-u.ac.jp>
"KMochida" <kaor...@plum.freemail.ne.jp> writes:
> Win2kでcygwin1005.9.0.0を使用しています。


> $ mkdir /var/empty
> とすると
> $ tail -f /var/log/sshd.log
> /var/empty must be owned by root and not group or world-writable.
> $ ls -l /var/ | grep empty

> drwxrwxrwx+ 2 root なし 0 Nov 8 17:34 empty

このメッセージとこのモードの問題だとすると、次のようにすると
直るかもしれません。

chmod 700 /var/empty

あと、ls ですが、-d オプションをつけるといいですよ。

ls -ld /var/empty

試してみてください。

/var/empty は、privilege separation の話ですね。内部的に、
fork して cd /var/empty して setuid から、ネットワークからの
データを読込んで認証するやつ。Cygwin でどのくらい効くんでしょ
うか。

Cygwin でもし効かないなら、mkdir /var/empty でなくて、
privilege separation を切ってもいいかもしれません。

\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報       \\

EHARA Jun-ichi

unread,
Nov 8, 2004, 11:17:42 AM11/8/04
to
江原です。
私のところ(今この記事を書いてるPC)では Windows2000 + Cygwin で sshd
が動いているんですが,

% uname -r
1.5.11(0.116/4/2)
% ls -ld /var/empty
drwxr-xr-x+ 2 SYSTEM Administ 0 Oct 28 2003 /var/empty
% ls -l /var/log/sshd.log
-rw-r--r-- 1 SYSTEM Administ 0 Oct 28 2003 /var/log/sshd.log
% printenv CYGWIN
ntsec server error_start=dumper
% cygrunsrv --query sshd
Service sshd exists
Type : Own Process
Current State : Running
Controls Accepted : Accept Stop

ってな具合になってます。

Cygwin の場合,sshd の設定は /usr/bin/ssh-host-config というシェル
スクリプトでもって対話的に行います。ssh-host-config の質問の答え方は
それこそ Google で漁ればいろいろ情報を見つけられると思います。

原因調査が面倒であれば,ssh-host-config が作るファイル・ディレクトリ
を全部消して(或いはどこかへ退避させて),Windows のサービスの登録も消
して(cygrunsrv --remove sshd),再度 ssh-host-config を実行してみて
はいかがでしょうか。

余力があれば,ssh-host-config の中身と PC の環境設定を比較してみれば
怪しげな箇所など判るかもしれませんが…


--
江原 純一 j-e...@pop17.odn.ne.jp

KMochida

unread,
Nov 8, 2004, 12:23:25 PM11/8/04
to
KMochidaです。ご回答有難うございます。m(_ _)m


> このメッセージとこのモードの問題だとすると、次のようにすると
> 直るかもしれません。
> chmod 700 /var/empty

これで上手くいきました。

$ uname -r
1.5.11(0.116/4/2)
$ chmod 700 /var/empty
$ ls -ld /var/empty
drwx------+ 2 SYSTEM なし 0 Nov 8 17:34 /var/empty
$ cygrunsrv -S sshd
$ cygrunsrv -Q sshd


Service sshd exists
Type : Own Process
Current State : Running
Controls Accepted : Accept Stop

として起動出来ました。\(^o^)/

> あと、ls ですが、-d オプションをつけるといいですよ。
> ls -ld /var/empty
> 試してみてください。

ディレクトリ自体の属性の表示ですね。

0 new messages