web-dev-qa-db-ja.com

Cygwinでsshdを起動しようとしたときにQueryServiceStatus:Win32エラー1062を取り除く方法は?

Windows 7にCygwinとsshdをインストールしましたが、それを機能させることができません。

私は http://www.noah.org/ssh/cygwin-sshd.html からのガイドに従いましたが、それでも取得します:

$ cygrunsrv -S sshd
cygrunsrv: Error starting a service: QueryServiceStatus:  Win32 error 1062:
The service has not been started.

構成の詳細:

  • ローカル管理特権を持つドメインユーザーで実行されているドメイン内のWindows 7
  • netstat -a -bは、ポート22で何も実行していないことを報告します
  • C:\cygwin\var\log\sshd.logは空です
  • Cygwinとsshdをインストールした後、ssh-Host-config -y
  • SYSTEMアカウントを3つのディレクトリに追加しようとしましたが、変更はありません。
  • 完全なシステム再起動をすでに試みたが、変更はない

更新:WindowsログはPossible duplicate cygwin1.dll

7
sorin

おかげで、あなたの更新は解決でした-他の誰かのために、Cygwin起動時のWin32エラー1062に対するレシピ#3があります:

1)アプリケーションイベントログを確認し、「sshd:PID:重複する可能性のあるcygwin1.dll:」のような「情報」レベルのイベントがあるかどうかを確認します。

指定された場所で愚かな複製を見つけ、名前を変更するか、どういうわけかパスから削除します。鉱山は「/ cygdrive/c/Program Files(x86)/socat-1.7.2.0/cygwin1.dll」にありました。

ブー、ソキャット!どうやら彼らは PP に従事しています。私のシステムにsocatがあることさえ知りませんでした。明らかに他のインストールの一部として来たようです。 cygwinメーリングリストで他の2人が重複DLLの問題に苦しんでいるのを発見しました。

7
Algomorph

ありがとう@HopelessN00b@user155148@Algomorphソリューションの組み合わせでうまくいきました。

核心

私には2つの問題がありました。

  1. cygwin1.dllファイルが重複しています。
  2. /var/log/sshd.log:「特権分離ユーザーsshdが存在しません」

私の修正

  1. 流血の重複ピクルスファイルを処理します。

    cd /cygdrive/c/Program\ Files\ \(x86\)/cwRsync/bin
    mv cygwin1.dll cygwin1_.dll
    
  2. /etc/passwdを編集してユーザーを追加し、次の行を追加しました:

    sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
    

ユーザー名「sshd」は/var/log/sshd.logから取得したものです。


GADこれはお尻の痛みなんです!

他のリソースを1つ見つけました。これはもう少し詳細で、Oracle

一言で言えば、あなたがグライフを持​​っているなら:

  1. これらの各ステップを1つずつ実行します。 AT。 A.ブラッディ。時間。
    ...修正してください
    ..... run cygrunsrv -S sshd
    .......やたらと呪い
  2. Windozeイベントログを確認します。
    ...重複したDLLファイルがありますか?
  3. /var/log/sshd.logをご覧ください
    .../etc/passwd問題はありますか?
2
misterich

権限分離の問題がありました。この場合、/etc/passwdファイルに行を追加することで問題は解決しました。

sshd:x:74:74:特権で区切られたSSH:/ var/empty/sshd:/ sbin/nologin

1
CsBalazsHungary

(ほぼ)同じ効果と類似の解決策がありました:アプリケーションログに重複したファイルが表示されました

重複する可能性のあるcygwin1.dll:/cygdrive/c/dakota/bin/cygwin1.dll ..

私のダコタのインストールから。このdllの名前を変更するとうまくいきました。ありがとうございました!

1
user155148

私にとっては、互換性の問題であることが判明しました。 Win7で実行しようとしました。エクスプローラーでファイルを右クリックして修正し、Windows Server 2003との互換性と互換性を設定しました。その後は問題なく動作しました。

ここで解決策を見つけました:

http://h30499.www3.hp.com/t5/Windows-Server-2008/Installing-OpenSSH-on-Windows-server-2008/td-p/4777839#.U0cmzle2wuI

私の問題は、Cygwinの軽量バージョンを使用するOpenSSHサーバーを起動しようとすることに特に関連していたことに注意してください。

1
Rob Penridge

ローカルアカウントcyg_serverを使用してsshdを実行しています。エラーメッセージで所有者はrootである必要があると示されているにもかかわらず、/ var/emptyの権限を700に、所有者をcyg_serverに設定する必要がありました。

その日のメッセージ(/ etc/motd)も削除しましたが、これは絶対に必要だとは思いません。それは時々私の自動化の邪魔になります。

FWIW、cyg_serverは管理者権限を持つ完全にローカルなユーザーであり、Active Directory定義はありません。レジストリと/ etc/passwdにリストされています。

また、最近のCygwin更新を受け入れた後、cyg_serverの権限を編集する必要がありました。

cygrunsrv -E sshd
editrights -a SeAssignPrimaryTokenPrivilege -u cyg_server
editrights -a SeCreateTokenPrivilege -u cyg_server
editrights -a SeTcbPrivilege -u cyg_server
editrights -a SeServiceLogonRight -u cyg_server
cygrunsrv -S sshd

sshdを停止し、サービスアカウントの権限を変更して、sshdを再起動しました。

これは、このクイックセッションの後に権限が設定される方法です。

bash-4.4$  editrights -u cyg_server -l
SeAssignPrimaryTokenPrivilege
SeCreateTokenPrivilege
SeTcbPrivilege
SeServiceLogonRight
SeDenyRemoteInteractiveLogonRight
bash-4.4$ 
0
DDay

誰かが別のStack Exchange質問にこれを投稿しましたが、/var/log/sshdに空のファイルがある場合は、/usr/sbin/sshdを試してください。これにより、ログに記録されなかったエラーが出力されます。

私にとっては、sshdサービスをアンインストールし、再起動してからssh-Host-configを再実行して、 these の指示に従って、(ls -l /var/etcが最初の試みで空のフォルダー以前に this チュートリアルを実行したため、これは理にかなっているSYSTEMによって所有されていました。しかし、このようにして、「/ var/emptyはグループまたは全世界で書き込み可能ではなく、ルートによって所有されている必要があります」というエラーが発生しました)。

0
Peter Jas Cook

クライアントシステムで、ポート22でSSHトンネリングオプションを実行しているRDPlus(www.rdplus.com.au)と呼ばれるプログラムを見つけました。Cygwinsshdが起動する前に無効にする必要がありました。 CMD.EXEから、アプリケーションイベントログで「0.0.0.0のポート22へのバインドに失敗しました」エラーを検出した後、「netstat -abo」がこのプロセスをポイントしました。 「o」オプションは、タスクマネージャーにあるPIDを表示します。

これを無効にするには、RDPlus管理ツールを実行し、[Web]タブに移動して、SSHトンネリングを無効にします。

0
Greg Duffy

これはsshdサーバーのエラーによって引き起こされているようです-私の場合は/etc/ssh_Host_rsa_key permsでbarfされています-/var/log/sshdなどで調べてください。

0
user176915

私はcygwin1.dllも含むCntlm(NTLM認証プロキシ)を使用していましたが、そのような重複を回避することで問題は解決しました。

0
rook

/ etc/passwd応答は非常に近いものでしたが、UID 74は彼のインストールに固有のものでした。

代わりに、このcygwinコマンドを使用して正しいUIDを取得します。

mkpasswd -l -u sshd >>/etc/passwd

0
rkelleycook