Você pode identificar "estar em casa" pelo seu endereço de rede e fazer:
# iptables -A INPUT -p tcp --dport 22 -s 192.168.0.0/24 -j ACCEPT
# iptables -A INPUT -p tcp --dport 22 -s 127.0.0.0/8 -j ACCEPT
# iptables -A INPUT -p tcp --dport 22 -j DROP
Onde você troca o 192.168.0.0/24 pelo endereço da sua rede local em casa. Isso ainda abrirá a porta quando você estiver em uma rede com o mesmo endereço de rede e sub-rede de sua rede doméstica, portanto, escolha um que não seja muito comum.
Mas isso foi apenas para responder sua pergunta sobre como identificar "casa". Este não é um método adequado nem seguro em que você deve confiar para proteger um servidor SSH (pense em IP-Spoofing). Melhor seguir as diretrizes de segurança comprovadas, por exemplo 2FA, alterando portas comuns, usando autenticação de chave, desabilitar logins de raiz, bloqueando tentativas fracassadas, etc.
Veja isto: link