AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1710006
Accepted
Teknowledgist
Teknowledgist
Asked: 2022-03-16 10:38:30 +0800 CST2022-03-16 10:38:30 +0800 CST 2022-03-16 10:38:30 +0800 CST

Como consultar o AD na sessão de autenticação baseada em chave SSH?

  • 772

Eu tenho um script PoSh em um servidor Windows (2019) que quero iniciar a partir de um aplicativo web simples (um botão) em um servidor web linux, então habilitei o OpenSSH e o restringi a apenas uma conta genérica e sem privilégios.

No teste manual com autenticação de nome de usuário/senha, a conta é autenticada e o script funciona bem.

Quando estabeleci um par de chaves pública/privada, a conta se conecta, mas o script falha. A falha ocorre quando o script tenta ler os resultados (nulos) de uma consulta ADSI necessária. Eu pensei que uma das razões para usar pares de chaves era evitar a necessidade de senhas codificadas em scripts.

A única coisa que posso imaginar é que a autenticação baseada em chave não está realmente "logando" e que precisa haver algum tipo de tíquete gerado que possa ser passado para o AD quando as credenciais forem necessárias para verificações de acesso de segurança. Eu acho que uma advertência como essa seria explicada em algum lugar em toda a documentação sobre como configurar/usar SSH no Windows.

Se meu palpite for verdade, qual é a melhor maneira de resolver isso? Existe alguma configuração no OpenSSH para que a autenticação baseada em chave gere um ticket sem uma senha? Eu realmente preciso colocar a senha no código?

Obrigado

ssh windows
  • 1 1 respostas
  • 107 Views

1 respostas

  • Voted
  1. Best Answer
    user1686
    2022-03-16T11:29:54+08:002022-03-16T11:29:54+08:00

    A única coisa que posso imaginar é que a autenticação baseada em chave não está realmente "logando" e que precisa haver algum tipo de tíquete gerado que possa ser passado para o AD quando as credenciais forem necessárias para verificações de acesso de segurança

    As credenciais são sempre necessárias para acessar o AD. Em logins normais, ADSI (assim como RSAT, compartilhamento de arquivos SMB, etc) usa automaticamente suas credenciais "padrão" que o Windows armazenou como parte do processo de login - para o Active Directory, ele obtém um tíquete inicial Kerberos do AD DC (como bem como armazenar seu hash de senha NTLM para serviços não integrados ao AD). Você pode correr klistpara ver o ticket "krbtgt/" que concede acesso a todos os serviços do AD.

    Existe alguma configuração no OpenSSH para que a autenticação baseada em chave gere um ticket sem uma senha?

    Geralmente não, a máquina não pode gerar tickets do nada – ela precisa obtê -los no AD DC e, para isso, precisa de suas credenciais em um formato aceitável para o AD. Isso geralmente significa sua senha (ou tecnicamente seu certificado PKI se o AD estiver configurado para isso - mas isso não funcionará através do OpenSSH).

    Com a autenticação de chave pública, o OpenSSH no servidor não possui nenhuma credencial que possa ser usada para obter um tíquete Kerberos em seu nome.

    Uma exceção a isso é a delegação restrita usando a extensão "S4U2Proxy" do Kerberos, onde o sistema pode usar suas próprias credenciais de 'máquina' para gerar tíquetes representando você. Esta não seria uma configuração OpenSSH no entanto (S4U2Proxy não pode ser usado para criar tickets krbtgt "iniciais" até onde eu sei); uma vez que as permissões para delegação restrita são concedidas à máquina, é provável que o ADSI precise solicitar que o Windows faça isso para a conexão LDAP real.

    Eu acho que uma advertência como essa seria explicada em algum lugar em toda a documentação sobre como configurar/usar SSH no Windows.

    É provável que seja "já conhecido" do PowerShell Remoting via WinRM, onde é conhecido como o "problema do segundo salto" desde que o recurso existiu.

    • https://docs.microsoft.com/en-us/powershell/scripting/learn/remoting/ps-remoting-second-hop?view=powershell-7.1

    Das opções oferecidas, o transporte SSH suporta delegação Kerberos irrestrita, mas não CredSSP (embora eu não consiga ver por que o artigo afirma que o último é mais seguro - ambos transferem suas credenciais, portanto, ambos são igualmente arriscados).

    Este não é um problema exclusivo do Windows – também é visto em sites Unix, por exemplo, universidades que executam sistemas onde os usuários têm diretórios pessoais baseados em NFS ou AFS acham impossível usar autenticação de chave pública pelo mesmo motivo.

    Eu realmente preciso colocar a senha no código?

    Claro que não - você pode colocá-lo em um arquivo de configuração separado.

    (Há pouca diferença entre ter um arquivo com uma chave privada nele, e um arquivo com uma senha nele... protegidos na mesma medida. São os outros recursos dos pares de chaves que os fazem valer a pena usá-los.)

    Outra opção seria reescrever seu script para rodar no Linux, acessando o Active Directory através do LDAP (por exemplo, python-ldap ou perl Net::LDAP). Dessa forma, em vez de armazenar uma senha, ele poderia usar um arquivo keytab do Kerberos para autenticação – que ainda precisa da mesma proteção no disco, mas tem a vantagem de usar o Kerberos em geral.

    • 0

relate perguntas

  • Exigir autenticação LDAP *e* autenticação ssh

  • Comunique-se com o daemon do Docker no Windows

  • Carregar chave “ec256.pem”: formato inválido é lançado ao tentar gerar chave pública a partir de chave privada

  • atalho do shell da área de trabalho no painel lateral do explorer

  • Por que chown 600 id_rsa corrige problemas de permissões?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como posso reduzir o consumo do processo `vmmem`?

    • 11 respostas
  • Marko Smith

    Baixar vídeo do Microsoft Stream

    • 4 respostas
  • Marko Smith

    O Google Chrome DevTools falhou ao analisar o SourceMap: chrome-extension

    • 6 respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Martin Hope
    Saaru Lindestøkke Por que os arquivos tar.xz são 15x menores ao usar a biblioteca tar do Python em comparação com o tar do macOS? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh Como posso reduzir o consumo do processo `vmmem`? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Pesquisa do Windows 10 não está carregando, mostrando janela em branco 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 Por que uma conexão de Internet gigabit/s via cabo (coaxial) não oferece velocidades simétricas como fibra? 2020-01-25 08:53:31 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve