Não sei se todos conhecem e/ou usam algum sistema que utilize autenticação por 2 fatores, eu tenho usado há algum tempo para a minha conta no Gmail.
Funciona assim:Os 2 fatores são
1. Uma coisa que você sabe: sua senha;
2. Uma coisa que você tem: seu celular.
Muito bem, eu configurei minha conta no Google para usar isso, lá você pode definir se quer receber um sms com um código ou usar um aplicativo para gerá-lo. Eu uso a segunda opção, pois instalei no meu Android o aplicativo para isso: Google Authenticator Há versões para outros sistemas móveis.
Esse código vale por um período pequeno de tempo, algo em torno de 1 minuto por padrão.
Então para logar na sua conta, por exemplo numa máquina que não é a sua, você irá digitar sua senha e depois o código que recebeu. Portanto mesmo que alguém tenha sua senha, vai precisar também do seu celular para saber o código, fica BEM mais difícil, não?
Hoje, usando meu velho e bom aptitude, vi que no Debian tem um pacote, nos repositórios oficiais, para usar o PAM com o Google Authenticator. Fiquei super interessado e comecei a fazer os testes.
Resumindo, para logar no meu servidor via ssh também estou usando autenticação por 2 fatores, a senha e o código.
Como fazer isso no Debian [ou Ubuntu ou LinuxMint]? É bem fácil!!
[Nota do editor: pode-se também utilizar "sudo apt-get install libpam-google-authenticator", com os mesmos resultados.]
No arquivo /etc/pam.d/sshd colocar logo no começo a linha:
auth       required   pam_google_authenticator.so
No arquivo /etc/ssh/sshd_config deve ter a linha:
Com seu usuário, rode:
Isso irá gerar uma chave, códigos de reserva e um arquivo no seu "home", além de uma url para poder cadastrar no aplicativo do Android.