Pedido de autenticação com SSH


22

Quando eu faço login via ssh -v, vejo que o ssh está autenticando da seguinte maneira

debug1: Authentications that can continue: publickey,gssapi-with-mic,password,hostbased

Gostaria de mudar a ordem ... alguma ideia de como?

Meu maior problema é que o usuário com contas bloqueadas ainda pode fazer login via chaves públicas. Descobri que eu poderia adicionar o usuário a um grupo "ssh-locked" add negar esse grupo do sshing, mas ainda estou pensando se há uma maneira de dizer ao ssh'd: Verifique a senha antes das chaves ...


11
Eu acho que você está abordando isso da maneira errada - as chaves são (geralmente) mais seguras que as senhas. Se a conta estiver bloqueada, você deverá informar ao daemon sshd para não permitir que o usuário efetue login, independentemente do método de autenticação.
— precisa

Como eu disse, encontrei uma solução via DenyGroups. Estou pedindo isso por interesse.
— Oz123

Respostas:


31

O servidor ssh decide quais opções de autenticação ele permite, o cliente ssh pode ser configurado para decidir em qual ordem tentar.

O cliente ssh usa a PreferredAuthenticationsopção no arquivo de configuração ssh para determinar isso.

De man ssh_config( veja online aqui ):

PreferredAuthentications
             Specifies the order in which the client should try protocol 2 authentication methods.  This allows a client to prefer
             one method (e.g. keyboard-interactive) over another method (e.g. password).  The default is:

                   gssapi-with-mic,hostbased,publickey,
                   keyboard-interactive,password

Eu não acredito que seja possível, sem brincar com a fonte, dizer ao servidor OpenSSH para preferir uma certa ordem - se você pensar sobre isso, não faz muito sentido de qualquer maneira.


Se você estiver usando Git Bash para Windows, salvar sua configuração do ssh para~/.ssh/config
— Spencer Williams

A ordem pode fazer sentido se um método depender de um anterior. Por exemplo, 2FA em teclado interativo pode depender do usuário ter fornecido uma senha válida primeiro.
— steveayre

Você pode postar uma fonte onde copiou e colou as informações de PreferredAuthentications acima? Eu não vejo isso dentro man ssh, nem dentro /etc/ssh/ssh_config, nem dentro /etc/ssh/sshd_config. Onde você conseguiu esta informação?
— Gabriel Staples

Encontrei! Foi dentro man ssh_config. Enviei uma edição para revisão para atualizar sua resposta para conter esta fonte. Por favor, cite fontes na próxima vez! Muito Obrigado.
— Gabriel Staples

18

Adicionando isso:

PreferredAuthentications keyboard-interactive,password,publickey,hostbased,gssapi-with-mic

... para o meu /etc/ssh/ssh_configme ajudou a resolver isso, e economizou muito tempo também!

Você pode verificar se funciona usando o ssh -v user@hostcomando para conectar, onde -vsignifica "detalhado".


2
Verifique se você está adicionando isso ao arquivo correto ssh_confige não sshd_config. Este último fará com que seu ssh falhe!
— precisa

0

Adicionando às outras duas respostas já mencionando a PreferredAuthenticationsopção, gostaria de adicionar que você não precisa editar nenhum arquivo para definir essa configuração, se não desejar . Em vez disso, você pode configurá-lo na linha de comando de uma chamada individual parassh , com a -oopção, da seguinte maneira:

ssh -o PreferredAuthentications=publickey,gssapi-with-mic,hostbased,keyboard-interactive,password user@hostname

Referências:

  1. Para ler mais sobre a PreferredAuthenticationsopção, consulte man ssh_config( consulte on-line aqui ). Leia também sobre a ssh -oopção nas man sshpáginas de manual ( online aqui ).
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.