Como se livrar de QueryServiceStatus: Win32 erro 1062 quando você tenta iniciar o sshd no Cygwin?

7

Instalei o Cygwin e o sshd no Windows 7, mas não consigo fazê-lo funcionar.

Eu segui o guia do link , mas ainda recebo:

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

Detalhes da configuração:

  • Windows 7 em um domínio em execução com um usuário de domínio que tenha privilégios administrativos locais
  • netstat -a -b não informa nada em execução na porta 22
  • C:\cygwin\var\log\sshd.log está vazio
  • Depois de instalar o cygwin e o sshd, corro ssh-host-config -y
  • Já tentei adicionar a conta SYSTEM aos 3 diretórios, sem alteração.
  • Já tentei uma reinicialização completa do sistema, sem alteração

Atualização: registros do Windows reclamam de Possible duplicate cygwin1.dll

    
por sorin 13.12.2011 / 16:35

11 respostas

7

Obrigado, Sua atualização foi a resolução - para qualquer outra pessoa lá fora, há uma receita # 3 contra o erro Win62 1062 na inicialização do Cygwin:

1) Verifique o log de eventos do aplicativo, veja se existem eventos de "Informações" lá com algo como: "sshd: PID: possível cygwin1.dll duplicado:"

Encontre aquela duplicata boba no local especificado e renomeie-a ou remova-a do caminho de alguma forma. O meu estava em "/ cygdrive / c / Program Files (x86) /socat-1.7.2.0/cygwin1.dll."

Boo, socata! Aparentemente eles se envolvem em 3PP . Nem sabia que socat estava no meu sistema, aparentemente ele veio como parte de alguma outra instalação. Eu encontrei 2 outras pessoas nas listas de discussão do cygwin tendo sofrido com o problema de duplicate-dll.

    
por 19.06.2012 / 15:18
2

Obrigado @HopelessN00b , @user155148 , @Algomorph uma combinação de suas soluções me ajudou.

O Crux

Eu tive dois problemas:

  1. Duplicar cygwin1.dll arquivos.
  2. /var/log/sshd.log : "O sshd do usuário de separação de privilégios não existe"

Minha correção

  1. Lide com os arquivos duplicados de salmoura duplicados:

    cd /cygdrive/c/Program\ Files\ \(x86\)/cwRsync/bin
    mv cygwin1.dll cygwin1_.dll
    
  2. Adicionou um usuário editando /etc/passwd e adicionando a seguinte linha:

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

Observe que o nome de usuário 'sshd' veio de /var/log/sshd.log .

GAD que dor na bunda é essa!

Eu encontrei um outro recurso, este um pouco mais detalhado e de Oracle

Em poucas palavras, se você está tendo greif:

  1. Execute cada uma dessas etapas ONE. AT. A. SANGRENTO TIME.
    ... faça a correção
    ..... execute cygrunsrv -S sshd
    ....... amaldiçoar profusamente
  2. Verifique os logs de eventos do Windoze.
    ... Você tem arquivos duplicados de dll?
  3. Dê uma olhada em /var/log/sshd.log
    ... Você tem /etc/passwd probs?
por 08.03.2014 / 06:58
1

Eu tive (quase) o mesmo efeito e uma solução análoga: o log do aplicativo mostrava um arquivo duplicado

Possível duplicar cygwin1.dll: /cygdrive/c/dakota/bin/cygwin1.dll ..

da minha instalação dakota. Renomear esta dll fez o truque. Obrigada!

    
por 19.01.2013 / 16:20
1

Eu tive algum problema de separação de privilégios. Neste caso, adicionar uma linha ao arquivo /etc/passwd solucionou o problema.

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

    
por 08.03.2013 / 13:38
1

Para mim, acabou sendo um problema de compatibilidade. Eu estava tentando executá-lo no Win7. Corrigido clicando com o botão direito do mouse no arquivo no Explorer, indo para compatibilidade e definindo a compatibilidade para o Windows Server 2003. Funcionou bem depois disso.

Encontrou a solução aqui:

link

Observe que meu problema estava relacionado especificamente ao lançamento do OpenSSH Server, que usa uma versão light do Cygwin.

    
por 11.04.2014 / 01:22
0

A resposta do / etc / passwd foi muito próxima, mas o UID 74 foi específico para sua instalação.

use este comando cygwin para pegar o UID correto.

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

    
por 17.04.2013 / 16:07
0

Isso parece ser causado por QUALQUER erro com o servidor sshd - no meu caso, ele vomitou em /etc/ssh_host_rsa_key perms - deve ser 0600. procure em /var/log/sshd ou similar.

    
por 07.06.2013 / 04:43
0

Em um sistema cliente, encontrei um programa chamado RDPlus (www.rdplus.com.au) executando uma opção de tunelamento SSH na porta 22 que eu tive que desabilitar antes que o Cygwin sshd fosse iniciado. No CMD.EXE, 'netstat -abo' apontou para este processo depois de encontrar um erro 'Bind to port 22 on 0.0.0.0 failed' no log de eventos do aplicativo. A opção 'o' mostrará o PID que pode ser encontrado no Gerenciador de Tarefas.

Para desabilitar isso, execute a ferramenta de administração RDPlus, acesse a guia Web e desabilite o Tunelamento SSH.

    
por 02.08.2014 / 00:36
0

Alguém postou isso em outra pergunta do Stack Exchange, mas caso você tenha um arquivo vazio em /var/log/sshd , tente /usr/sbin/sshd . Isso gerará os erros que você não obteve no log.

Para mim, desestocando os serviços sshd, reiniciando e re-executando o ssh-host-config, enquanto segue estas instruções , ajudaram ( ls -l /var/etc me disse que na minha primeira tentativa, a pasta vazia era de propriedade do SYSTEM, que faz sentido, desde que eu segui este tutorial anteriormente. No entanto, desta forma, eu tenho um erro "/ var / empty deve ser possuído pelo root e não pelo grupo ou pelo mundo".

    
por 15.10.2014 / 19:10
0

Eu estava usando Cntlm (proxy de autenticação NTLM) que contém cygwin1.dll também, evitar essa duplicação resolveu o problema.

    
por 24.02.2015 / 10:59
0

Eu uso uma conta local, cyg_server, para executar o sshd. Eu precisava definir as permissões em / var / empty para 700 e o proprietário para cyg_server, apesar do fato de que a mensagem de erro dizia que o proprietário precisa ser root.

Também removi a mensagem do dia (/ etc / motd), mas não acho que isso seja estritamente necessário. Às vezes atrapalha a minha automação.

FWIW, cyg_server é um usuário estritamente local com privilégios de administrador e nenhuma definição do Active Directory. Ele está listado no registro e em / etc / passwd.

Eu também tive que editar os direitos do cyg_server depois de aceitar uma atualização recente do Cygwin.

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

parou o sshd, alterou os direitos da conta de serviço e reiniciou o sshd.

É assim que os direitos são definidos após essa rápida sessão.

bash-4.4$  editrights -u cyg_server -l
SeAssignPrimaryTokenPrivilege
SeCreateTokenPrivilege
SeTcbPrivilege
SeServiceLogonRight
SeDenyRemoteInteractiveLogonRight
bash-4.4$ 
    
por 27.09.2017 / 20:46