O maior problema com conexões públicas é a senha. Eu realmente não me importo se alguém conhece meu nome de usuário / o que eu fiz. O que importa, porém, é como eles poderiam reutilizar minha senha.
Sugiro proteger o acesso SSH com autenticação em duas etapas. Encontrei esse link explicando como ativar o Google Authenticator para seu login SSH: link
Para quem não sabe, aqui está uma Wikipedia descrição do que ele faz:
Typically, users will install the Authenticator app on their smartphone. To log into a site or service that uses two-factor authentication, they provide user name and password to the site and run the Authenticator app which produces an additional six-digit one-time password. The user provides this to the site, the site checks it for correctness and authenticates the user.
- Primeiro, instale
libpam-google-authenticator
do seu gerenciador de pacotes favorito. Código-fonte aqui - Ative a autenticação em duas etapas adicionando
auth required pam_google_authenticator.so
à sua página de configuração/etc/pam.d/sshd
. - Verifique se
ChallengeResponseAuthentication
está definido comoyes
no seu arquivo/etc/ssh/sshd_config
. - Faça login como o usuário para o qual você deseja a autenticação em duas etapas, execute
google-authenticator
e siga as etapas. Ele vai até mesmo imprimir um bom QR-Code no seu terminal por conveniência - Reinicie seu servidor SSH e experimente!
Dessa forma, você pode criar uma conta no grupo sudoers
que tenha apenas a autenticação de senha do Google Authenticator. Nenhuma senha estática, confiável e ainda um acesso root.
Mas esta solução pressupõe que os keyloggers são as únicas ameaças que um computador público tem a oferecer.