OS: Windows 7 x64
Cygwin: 1.7.15-1
OpenSSH: 6.0p1-1
Windows 7 に SSH サーバーをインストールしようとしています。これを行うために私が従っているチュートリアルは次のとおりです。http://www.howtogeek.com/howto/41560/how-to-get-ssh-command-line-access-to-windows-7-using-cygwin/
問題は、net start sshd
コマンドを実行すると次の出力が得られることです。
CYGWIN sshd サービスが起動しています。 CYGWIN sshd サービスを開始できませんでした。サービスはエラーを報告しませんでした。
NET HELPMSG 3534 と入力すると、さらに詳しいヘルプが表示されます。
セットアップの完全な出力は次のとおりです。
管理者ユーザー@このコンピュータ ~ $ sshホスト設定 *** 情報: /etc/ssh_host_key を生成しています *** 情報: /etc/ssh_host_rsa_key を生成しています *** 情報: /etc/ssh_host_dsa_key を生成しています *** 情報: /etc/ssh_host_ecdsa_key を生成しています *** 情報: デフォルトの /etc/ssh_config ファイルを作成しています *** 情報: デフォルトの /etc/sshd_config ファイルを作成しています *** 情報: OpenSSH 3.3 以降では、権限の分離はデフォルトで yes に設定されています。 *** 情報: ただし、これには「sshd」と呼ばれる非特権アカウントが必要です。 *** 情報: 権限分離の詳細については、/usr/share/doc/openssh/README.privsep を参照してください。 *** クエリ: 権限分離を使用する必要がありますか? (はい/いいえ) はい *** 情報: 新しいユーザーを作成するには、現在のアカウントに *** 情報: 管理者権限。このスクリプトが *** クエリ: 新しいローカルアカウント 'sshd'? (はい/いいえ) はい *** 情報: /etc/sshd_config ファイルを更新しています *** クエリ: sshd をサービスとしてインストールしますか? *** クエリ: (すでにサービスとしてインストールされている場合は「いいえ」と答えてください) (はい/いいえ) はい *** クエリ: デーモンの CYGWIN の値を入力してください: [] *** 情報: Windows Server 2003、Windows Vista以降では、 *** 情報: SYSTEM アカウントは他のユーザーに setuid できません -- 機能 *** 情報: sshd が必要です。特権を持つか、作成する必要があります。 *** 情報: アカウント。このスクリプトは、これを行うのに役立ちます。 *** 情報: Windows XP 64ビット、Windows 2003 Serverを実行しているようです。 *** 情報: 以降。これらのシステムでは、LocalSystemを使用することはできません。 *** 情報: 許可なしにユーザーIDを変更できるサービスについて *** 情報: 明示的なパスワード(パスワードなしのログインなど [例: 公開鍵 *** 情報: sshd 経由の認証]。 *** 情報: この機能を有効にするには、 *** 情報: 特別な権限を持つ新しいアカウント(類似のアカウントがない限り) *** 情報: 既に存在します。このアカウントは、これらの特別な *** 情報: サーバー。 *** 情報: 新しいユーザーを作成するには、現在のアカウントが *** 情報: 管理者権限を持っています。 *** 情報: 特権アカウントが見つかりませんでした。 *** 情報: このスクリプトは 'cyg_server' を使用する予定です。 *** 情報: 'cyg_server' は登録されたサービスによってのみ使用されます。 *** 質問: 別の名前を使用しますか? (はい/いいえ) いいえ *** クエリ: 新しい特権ユーザー アカウント 'cyg_server' を作成しますか? (はい/いいえ) はい *** 情報: 新しいユーザー cyg_server のパスワードを入力してください。 *** 情報: このパスワードは、システムで指定されたパスワード ルールと一致します。 *** 情報: パスワードを入力しないと、構成が終了します。 *** クエリ: パスワードを入力してください: *** クエリ: 再入力: *** 情報: ユーザー「cyg_server」がパスワード「[CENSORED]」で作成されました。 *** 情報: パスワードを変更する場合は、 *** 情報: インストールされているサービスで使用している(またはすぐに使用する)パスワード *** 情報: 'cyg_server' アカウント。 *** 情報: ユーザー 'cyg_server' には読み取り権限が必要であることにも注意してください *** 情報: 'cyg_server' として実行されているサービスのすべてのユーザーの関連ファイルについて。 *** 情報: 特に、sshdサーバーの場合、すべてのユーザーの.ssh/authorized_keys *** 情報: 公開鍵を許可するには、ファイルに適切な権限が必要です *** 情報: 認証。各ユーザーに対してssh-user-configを(再)実行すると、 *** 情報: これらの権限を正しく使用してください。[同様の制限が適用されます。 *** 情報: たとえば、rshd サーバーが実行中の場合は .rhosts ファイルなど] *** 情報: sshd サービスは 'cyg_server' の下にインストールされました *** 情報: アカウント。今すぐサービスを開始するには、`net start sshd' を呼び出すか、 *** 情報: `cygrunsrv -S sshd'。それ以外の場合は自動的に起動します *** 情報: 次回の再起動後。 *** 情報: ホストの構成が完了しました。お楽しみください! 管理者ユーザー@このコンピュータ ~ $ ネットスタートsshd CYGWIN sshd サービスが起動しています。 CYGWIN sshd サービスを開始できませんでした。 サービスはエラーを報告しませんでした。 NET HELPMSG 3534 と入力すると、さらに詳しいヘルプが表示されます。
行には*** Query: Enter the value of CYGWIN for the daemon: []
何も入力していないことに注意してください。チュートリアルではここでntsec
またはを使用するように指示されることがよくありますntsec tty
が、これらのオプションは OpenSSH の最新バージョンでは削除されています。とにかくそれらを使用してみましたが、結果は同じでした。
ファイル/var/log/sshd.log
は空です。 コマンドを実行しようとすると、/usr/sbin/sshd
出力 が表示されます/var/empty must be owned by root and not group or world-writable.
。 /var/empty ディレクトリdrwxr-xr-x+ 1 cyg_server root 0 May 29 15:28 empty
には次の権限があります: 。 このエラーを Google で検索しても、有効な修正方法は見つかりませんでした。 コマンドを使用して解決した人がいたようですchown SYSTEM /var/empty
が、私の場合は解決しませんでした。
答え1
権限分離を無効にしてみてください/etc/sshd_config
答え2
Cygwinでは/var/empty
所有する必要があるユーザーが実行したsshd
(特権分離を無効にしない限り)
から2012年にCygwinメーリングリストにCorinna Vinschenが送った役立つメール
通常、sshdは/var/emptyがuid 0によって所有されているかどうかをテストします。Cygwinでは、通常uid 0のユーザーは存在しないため、コードが変更され、/var/emptyがsshdを実行しているユーザーの所有物であるかどうかをテストするようになりました。したがって、コマンドラインで sshd を起動する場合は、現在のユーザー アカウントに /var/empty を chown する必要があります。/etc の下の ssh 関連ファイルについても同様です。エラー メッセージは、バニラ アップストリーム エラー メッセージです。Cygwin 関連のアップストリーム パッチセットを小さく保つために、Cygwin では変更されていません。
答え3
私の場合は、別のサービスと競合していました。SSH サーバーのホスティングを試すために Bitvise トライアルをインストールしました。
Cygwin OpenSSH をインストールしたとき、Cygwin sshd を起動できるように Bitvise サービスをシャットダウンする必要があります。