SSH - identifique quais usuários ainda fazem login usando senhas


32

Eu tenho um servidor Ubuntu Linux que permite autenticação de senha para SSH e quero alterná-lo apenas para chaves SSH e desativar o login de senha.

Antes de desativar o login com senha, como posso descobrir quais usuários ainda estão usando senhas e quais foram alterados para autenticação de chave?


Aliás, embora muitas pessoas não saibam disso, você também pode solicitar a senha da chave e do servidor. Um pouco mais incômodo, mas, naturalmente, mais seguro também, se você fizer isso ...
deviantfan

34
Desative o login com senha sem aviso prévio e veja quantas pessoas gritam.
Mark


@deviantfan Seria mais seguro para simplesmente exigir um longo keyfile , mas isso exigiria um pouco de scripting.
jpaugh

1
@deviantfan Eu entendo o seu ponto. Mas, você está assumindo que a senha da chave privada é diferente da senha do servidor; (que, eu estou supondo que o arquivo de chave privada tem uma senha, eu sei.)
jpaugh

Respostas:


48

Você não pode fazer isso 100% de maneira confiável, mas existem duas fortes indicações:

  • Primeiro, a presença de um .ssh/authorized_keysarquivo é uma dica de que o usuário está pelo menos preparado para usar o login baseado em chave
  • Segundo, no arquivo de log de autenticação ( /var/log/secureno CentOS, /var/log/auth.logno Debian / Ubuntu), o método auth será registrado:

    Sep 28 13:44:28 hostname sshd[12084]: Accepted publickey for sven
    

    vs

    Sep 28 13:47:36 hostname sshd[12698]: Accepted password for sven
    

    Examine o log em busca de entradas com a senha mencionada para saber quem ainda está usando as senhas. Isso não funcionará com os usuários raramente fazendo logon, é claro, a menos que você tenha uma retenção de log muito longa.


por 'Digitalizar' o arquivo de log, presumo que você queira dizer opções sensatas, como usar grep? grep 'password' /var/log/ssh/sshd.log
Djsmiley2k - CoW

8
@ djsmiley2k: Sim, exatamente. Ou qualquer outro método que você preferir para essa tarefa.
Sven

O primeiro método não é impedido pelas práticas de segurança adequadas, como 700permissões no .sshdiretório do usuário e squash raiz nos diretórios pessoais montados?
Ogre Psalm33

1
@ OgrePsalm33: Você pode fazer essa pesquisa no servidor NFS ...
Sven

1
@R ..: Você pode obter o NFS razoavelmente seguro com o NFSv4 e o Kerberos (nesse caso, o login baseado em chave fica complicado). Fora isso: Sim, o logon com base em chave funciona sem problemas quando ~/.sshé definido 700como nos diretórios iniciais do NFS compactados com raiz e, portanto, é necessário alternar os IDs do usuário pelo menos para que a autenticação baseada em chave seja lida authorized_keys.
Sven

19

A maneira mais rápida é desativá-lo e ver quem bate na porta do seu escritório; p


6
Esta não é a maneira mais rápida, porque nem todo usuário pode entrar todos os dias, enquanto os logs podem mostrar claramente quando alguém logado, por isso eles dão um resultado imediato
Ferrybig

3
Esta é a maneira mais lenta. As pessoas só efetuam login no servidor se o aplicativo estiver inativo. Pode levar anos para que isso aconteça.
Navin

@pete você é o top :)
c4f4t0r
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.