Primeiro, algumas dicas gerais de segurança:
- Usar logins principais - você é bom nessa frente
- use teclas grandes - por exemplo, gerar uma chave de 4k rsa (provavelmente a atual é 1k ou 2k
- use uma senha strong para a chave - você deve fazer isso. Se eu puder colocar minhas mãos em sua chave paswordless desprotegida ... tudo é discutível
- move ssh para porta superior - ex. 12322 - isso ajudará na busca por serviços um pouco. E não esqueça de abrir a porta no grupo de segurança
- monitore o que está acontecendo com seu servidor - o fail2ban é uma ferramenta maravilhosa
- desabilitar logins de senha (há instruções nas outras respostas)
- implemente AllowUsers / AllowGroups para permitir que apenas usuários específicos (e root não sejam um deles) - juntamente com a configuração agressiva do fail2ban, isso é muito mais perigoso.
Especificamente para sua pergunta, existem ferramentas conhecidas como PortKnockers
Basicamente você faz algo (como tentar se conectar a várias portas diferentes em um curto espaço de tempo) e uma porta abre magicamente no iptables.
Algumas leituras sobre esse tópico:
NOTA: Eu não tenho experiência com portknocking e realmente não o recomendo, pois isso pode interferir nas operações normais. Chave segura grande e ssh em porta não padronizada são muito suficientes.