cygwin sshd falha ao alocar pty para alguns usuários

3

Eu (finalmente) tenho o sshd trabalhando sob o cygwin no Win7 - bem, mais ou menos.

O sshd é executado como usuário 'cyg_server'. Eu sou capaz de com êxito ssh para o meu computador usando esse mesmo nome de usuário.

No entanto, se eu tentar usar o ssh usando meu nome de usuário normal (Windows), ele falhará ao tentar alocar um arquivo para minha sessão de login. Por exemplo, a saída de 'sshd -D -d -d -d' contém isto

debug1: Entering interactive session for SSH2.
debug2: fd 4 setting O_NONBLOCK
debug2: fd 5 setting O_NONBLOCK
debug1: server_init_dispatch_20
debug1: server_input_channel_open: ctype session rchan 0 win 1048576 max 16384
debug1: input_session_request
debug1: channel 0: new [server-session]
debug2: session_new: allocate (allocated 0 max 10)
debug3: session_unused: session id 0 unused
debug1: session_new: session 0
debug1: session_open: channel 0
debug1: session_open: session 0: link with channel 0
debug1: server_input_channel_open: confirm session
debug1: server_input_global_request: rtype [email protected] want_reply 0
debug1: server_input_channel_req: channel 0 request pty-req reply 1
debug1: session_by_channel: session 0 channel 0
debug1: session_input_channel_req: session 0 req pty-req
debug1: Allocating pty.
debug1: session_pty_req: session 0 alloc /dev/pty1

!!! chown(/dev/pty1, 17308, 10513) failed: Invalid argument

debug1: do_cleanup
debug1: session_pty_cleanup: session 0 release /dev/pty1

Atualmente / dev é de propriedade da minha conta normal. Eu tentei mudar sua propriedade para cyg_server, bem como SYSTEM. Em ambos os casos, o problema persiste. Também alterei as permissões para / dev (por exemplo, 700 e 777). Novamente, o problema persiste.

[Como uma nota lateral - é estranho que sempre que eu faço 'ls -al / dev' os ptys não aparecem. No entanto, se eu ls-l / dev / ptyX 'para um pty eu sei existir, ele aparece. Isso é normal para cygwin?]

    
por BinaryBob 29.03.2012 / 23:58

2 respostas

1

Apagando todos os arquivos / etc / ssh * e re-executando ssh-host-config em uma janela cygwin aberta como administrador corrigiu o problema para mim, eu suponho corrigindo as permissões.

Eu tive que fazer uma boa quantidade de verificações e correções antes de conseguir fazer isso funcionar:

  • Os arquivos-chave /etc/ssh* são de propriedade, legíveis e graváveis pela conta do servidor privilegiado (por exemplo, cyg_server)
  • /dev é proprietário da minha conta de usuário (administrador) e rwxable por administradores, usuários e usuário do sshd
  • O serviço foi reiniciado
  • Você definiu as variáveis de ambiente CYGWIN=ntsec
por 27.04.2012 / 05:28
1

Eu tive um problema estranho depois de clonar a VM original do Windows, fazendo um 'sysprep' inicialmente -
"que altera o SID da máquina = > SID de todos os usuários locais, mas a senha / etc / é obviamente inalterada. Isso resultou na falha da autorização pubkey com" sshd: fatal: chown (/ dev / pty1) falhou: Permissão negada "Mensagens no log de eventos do aplicativo Win".

TL; DR Executando o console Cygwin elevado (como Administrador), net stop sshd, fazendo um 'mkpasswd -l' e substituindo todas as informações das contas locais em / etc / passwd da sua saída, então deleting / etc / ssh *, ssh-host-config, o net start sshd foi a solução para mim.

    
por 26.05.2014 / 16:14

Tags