Provavelmente você deveria olhar a configuração do sshd.
Existe uma opção para negar a autenticação de senha:
PasswordAuthentication no
e você pode criar uma lista de usuários com permissão para se conectar via ssh:
AllowUsers cgoddard
Eu tenho uma caixa debian que eu conecto via SSH. Eu removi a senha dos usuários root
e minha conta pessoal usando as instruções aqui e configure um par de chaves pública / privada para que eu possa fazer login, mas apenas se eu tiver a chave privada.
Recentemente, executei cat /etc/passwd
para ver quais outros usuários estavam no sistema e recebi uma lista justa. Então, como posso determinar o status da senha para cada usuário para que, se eu tornar a caixa pública para o mundo mais amplo (somente via ssh), não haja outros usuários com os quais alguém possa se autenticar?
A "lista justa" de usuários que você recebe provavelmente são apenas usuários do sistema, isto é, usuários criados para possuir algum serviço (ter, por exemplo, o apache sendo executado como um usuário separado ajuda a limitar o dano que poderia causar a outros se é subvertido). Eles provavelmente têm senhas impossíveis (aqui no Fedora 18 eu tenho, por exemplo, em /etc/shadow
a entrada bin:*:15209:0:99999:7:::
, como *
não é o hash de nenhuma senha, não tem como fazer login como usuário bin
; que /etc/shadow
é somente leitura raiz por motivos de segurança).