Erro de PuTTY: / bin / bash Operação não permitida ao conectar-se ao Cygwin sshd

0

Ao tentar se conectar a um servidor SSH usando o PuTTY, recebo um erro:

/bin/bash: Operation not permitted

E então eu recebo uma caixa de mensagem dizendo:

Connection closed by remote host

Isso começou a acontecer inesperadamente hoje e eu não tenho ideia do motivo, a conexão SSH costumava funcionar bem antes disso.

Oquecausaesseerroeháalgumamaneiradecorrigi-lo?

Edit:OservidoréumacaixadoWindows,nãodoLinux,eestáexecutandoosshddoCygwin.Tambémencontreiestepostqueachoquepodeserrelevante- link

    
por sashoalm 14.09.2017 / 10:48

5 respostas

3

Passei muito tempo tentando resolver o mesmo problema. Acidentalmente tropeçou em uma solução aqui:

link

No servidor cygwin:

  1. Vá para o Painel de controle > Ferramentas Administrativas.
  2. Selecione Política de segurança local > Políticas locais > Atribuição de direitos de usuário.
  3. Clique com o botão direito do mouse em Substituir um token de nível de processo e selecione Segurança ou Propriedades.
  4. Clique em Adicionar para adicionar a conta em que o sshd está sendo executado. (cyg_server no meu caso)
  5. gpupdate
  6. Reinicie o serviço sshd

Agora tente se conectar via ssh ... Eu fui bem sucedido

    
por 09.12.2017 / 20:28
2

Eu tive esse problema e resolvi isso.

Inicialmente, segui a resposta de Константин Брызгалов e consegui fazer o login com uma senha, mas não consegui fazer a autenticação de chave pública funcionar. (Eu criei uma conta de administrador cyg_server local manualmente.)

Em uma investigação mais aprofundada, eu estava lendo esta página e disse para evitar ter um domínio e uma conta local. Eu chequei e eu tinha os dois; aparentemente alguém da minha organização está executando um servidor cygwin e já criou um cyg_server no domínio, que estava ficando confuso com minha conta local.

Eu excluí minha conta cyg_server local, desinstalei o serviço sshd e reinstalei conforme descrito nessa página, e tudo funcionou perfeitamente. O truque era dizer "não" ao usar a conta cyg_server existente e dizer ao ssh-host-config para criar uma conta "cyg_server1". Ele criou uma conta local e configurou tudo corretamente. Especificamente:

  1. cygrunsrv --stop sshd
  2. cygrunsrv --remove sshd
  3. Ctrl + gt; Contas de usuário > Contas de usuários do gerente > (excluir conta local do cyg_server)
  4. mkpasswd -l -d > / etc / passwd
  5. mkgroup -l -d > / etc / group
  6. ssh-host-config
    • substituir = sim
    • strict = yes
    • CYGWIN = ntsec
    • usuário para executar = cyg_server1
    • senha = {...}

Verificando as contas de usuários, você verá que cyg_server1 é de fato uma conta local, mas possui configuração adicional.

    
por 03.01.2018 / 04:40
1

Eu tinha esquecido essa pergunta, mas no fim resolvi meu problema executando novamente o ssh-host-config na minha instalação do servidor Cygwin (felizmente também tive acesso RDP).

Isso foi tudo o que foi necessário, mas não tenho ideia do porquê de funcionar.

    
por 10.12.2017 / 07:42
1

Obrigado Константин Брызгалов por me apontar na direção certa, teve exatamente o mesmo problema.

Uma solução mais completa pode ser encontrada aqui: link Na verdade, existem três configurações de política que precisam ter o cyg_server configurado:

  • Agir como parte do sistema operacional (SeTcbPrivilege)
  • Crie um objeto de token (SeCreateTokenPrivilege)
  • Substituir um token no nível do processo (SeAssignPrimaryTokenPrivilege)
por 17.04.2018 / 16:18
1

Aqui está uma maneira mais direta de fazer o que os posts anteriores de Константин Брызгалов e Mun-dee dizem. Execute um terminal cygwin como Administrador e, em seguida:

pare o sshd em execução:

net stop sshd

concede ao usuário ssh os privilégios necessários:

editrights -a SeTcbPrivilege -u cyg_server

editrights -a SeAssignPrimaryTokenPrivilege -u cyg_server

editrights -a SeCreateTokenPrivilege -u cyg_server

reiniciar o sshd:

net start sshd

    
por 02.05.2018 / 22:50