sshd recusa a chave pública mesmo que correspondido em authorized_keys

0

Estou usando o openSSH para Windows (32 bits) e tenho a configuração sshd para autenticação de chave pública. Tenho certeza de que todas as permissões de arquivo estão definidas corretamente e adicionei a chave pública correta ao arquivo authorized_keys. No entanto, quando o cliente tenta autenticar sua chave pública, ele falha. A saída de depuração é a seguinte: (chave pública substituída por xxxxxxx)

debug1: userauth-request for user X service ssh-connection method publickey debug1: attempt 2 failures 0 debug2: input_userauth_request: try method publickey debug3: userauth_pubkey: have signature for RSA SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx debug1: trying public key file C:\Users\X\authorized_keys debug1: matching key found: file C:\Users\X\authorized_keys, line 2 RSA SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx debug3: socket:0, socktype:1, io:00986788, fd:3 debug3: unable to connect to pipe \\.\pipe\openssh-ssh-agent, error: 2 debug3: close - io:00986788, type:2, fd:3, table_index:3 debug1: get_priv_agent_sock: unable to connect to privileged agent, errno:2 debug2: userauth_pubkey: authenticated 0 pkalg rsa-sha2-512 Failed publickey for X from ::1 port 63175 ssh2: RSA SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx debug3: userauth_finish: failure partial=0 next methods="publickey,password,keyboard-interactive"

Gostaria de saber se o unable to connect to pipe \\.\pipe\openssh-ssh-agent, error: 2 pode ser a causa disso. Se for - existe uma maneira de desabilitar essa funcionalidade e apenas usar as authorized_keys?

EDIT: Acontece que o erro unable to connect to pipe \\.\pipe\openssh-ssh-agent, error: 2 desapareceu usando a sugestão de Jakuje, no entanto, a autenticação de chave pública ainda falha com:

Failed publickey for X from ::1 port 63175 ssh2: RSA SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx debug3: userauth_finish: failure partial=0 next methods="publickey,password,keyboard-interactive"

EDIT2: Pode valer a pena mencionar que não executo uma configuração típica. Os executáveis, arquivos de configuração e arquivos de chave do openSSH não estão localizados no diretório pessoal do usuário, mas no diretório ProgramData do usuário.

    
por Arthur 27.07.2017 / 08:27

3 respostas

0

Então, movi o arquivo authorized_keys para o diretório inicial do usuário / .ssh e configurei as permissões da seguinte forma:

  • Usuário do SSHD: leia & Executar, ler, gravar
  • Sistema: acesso total
  • Administradores: acesso total

E mudou o caminho no arquivo sshd_config para apontar para o novo local, e tudo começou a funcionar. Espero que isso ajude alguém que possa enfrentar o mesmo problema.

    
por 28.07.2017 / 08:31
3
debug3: unable to connect to pipe \\.\pipe\openssh-ssh-agent, error: 2
debug3: close - io:00986788, type:2, fd:3, table_index:3
debug1: get_priv_agent_sock: unable to connect to privileged agent, errno:2

A chave é encontrada, mas o servidor precisa entrar em contato com o agente de autenticação para criar sua sessão. Não foi iniciado nem falhou. Você pode tentar encontrá-lo, reiniciar o servidor sshd e assim por diante. O que todas as modificações do Windows são e fazem é discutido nesta solicitação pull:

link

    
por 27.07.2017 / 09:06
1

Este problema aconteceu comigo quando atualizei o OpenSSH de 0.6.0 para 0.20.0 simplesmente sobrescrevendo os arquivos. De fato, como apontado por @Jakuje, houve algumas mudanças na arquitetura e agora o sshd requer um agente separado, ssh-agent, que não existia nas versões anteriores.

Você precisa reinstalar o OpenSSH fazendo:

PS C:\OpenSSH-Win64> net stop sshd

The sshd service was stopped successfully.

PS C:\OpenSSH-Win64> .\uninstall-sshd.ps1
sshd successfully uninstalled
ssh-agent service is not installed
PS C:\OpenSSH-Win64> .\install-sshd.ps1
[SC] SetServiceObjectSecurity SUCCESS
[SC] ChangeServiceConfig SUCCESS
[SC] ChangeServiceConfig2 SUCCESS
sshd and ssh-agent services successfully installed
PS C:\OpenSSH-Win64> net start sshd

The sshd service was started successfully.

Permissões de correção usando Fix {Host | User} FilePermissions.ps1 podem ser necessárias também.

    
por 21.09.2017 / 23:41