Eu não acho que é possível fazer o que você está pedindo. Se você pudesse, alguém poderia "força bruta" para encontrar nomes de usuários válidos em seu servidor. Também tenho certeza que o nome de usuário e a senha são enviados simultaneamente pelo cliente, você pode verificar isso capturando pacotes usando o Wireshark em uma conexão SSH não criptografada.
Por "atividades de hacking", presumo que você esteja falando de tentativas de força bruta em senhas. Há muitas maneiras de se proteger disso, vou explicar as formas mais comuns.
Desativar login raiz Ao negar o login da raiz com o SSH, o invasor precisa saber ou adivinhar um nome de usuário válido. A maioria dos ataques automatizados de força bruta tentam apenas fazer login como root.
Bloqueio de IPs na falha de autenticação Daemons como o fail2ban e o sshguard monitoram seus arquivos de log para detectar falhas de login. Você pode configurá-los para bloquear o endereço IP tentando efetuar login após várias tentativas de login com falha. No seu caso, é isso que eu recomendaria. Isso reduz o spam de log e sobrecarrega seu servidor, já que todos os pacotes desse IP seriam bloqueados antes de chegarem ao daemon sshd. Você pode, por exemplo, configurar o fail2ban para bloquear IPs com três falhas de login nos últimos 5 minutos por 60 minutos. No pior dos casos, você verá três logins com falha em seu log a cada 60 minutos, supondo que o invasor não desista e siga em frente.
Autenticação de chave pública
Você pode desativar completamente a autenticação de senha e só permitir clientes com chaves específicas. Geralmente, essa é considerada a solução mais segura (supondo que o cliente mantenha sua chave segura e criptografada). Para desabilitar a autenticação por senha, adicione sua chave pública a ~/.ssh/authorized_keys
no servidor e defina PasswordAuthentication
para no
em sshd_config. Existem inúmeros tutoriais e ferramentas para ajudar nisso.
Espero que isso ajude você!