Я бы посоветовал сначала определить в чем именно проблема - в ssh или в чем-то другом. Предлагаю включить максимальный уровень записи отладочной информации в лог и посмотреть будет ли какая-нибудь запись в логе при неудачной попытке логина или нет. Если нет, значит sshd в случае неудачного логина просто изолирован и надо искать что его изолирует.
Для этого надо сверить время на сервере и на мобильнике, выставить в файле
/etc/ssh/sshd_config параметр
LogLevel DEBUG и рестартовать sshd сервер, записать время. Затем опять воспроизвести ситуацию когда логин не работает, записать время, выждать минут 10, записать время, включть комп в LAN и убедиться что логин заработал. Просмотреть лог
/var/log/syslog, начиная с времени рестарта ssh сервера (и привести отфильтрованные по слову ssh строки лог тут).
Если в логе по первой попытке нет никаких строк, значит надо искать что изолирует sshd - это модет быть либо маршрутизатор либо что-то в самом домашнем сервере. Других вариантов я не вижу. Маршрутизатор копай сам, а вот на сервере это может быть реализовано либо настройкой непосредственно файрвола (iptables, ufw) либо какими-то спецуальным прогами (Firestarter, fwbuilder, Shorewall, ipkungfu, Fireflier, knockd).
По поведению сервера можно было бы заподозрить применение техники port knoking:
http://en.wikipedia.org/wiki/Port_knocking И хотя ты пишешь, что не настраивал самостоятльно iptables, ты мог установить какой-нибудь хитрый пакет защиты, не подозревая, что он самостоятельно настроил эту ботву на файрволе.
Похоже на то, что файрвол отслеживает пакеты, приходящие из LAN (но не от маршрутзатора) и по каждому полученному пакету открывает на определенное время (час) порт sshd, а по истечению этого времени закрывает порт. Поэтому при наличии включенного компа в LAN порт постоянно открыт, так как пакеты по LAN ходят, время постоянно продлевается, и sshd работает как положено, а при отсутствии работающего в LAN компа по истечении часа так как пакетов нет, sshd блокируется.
Ни с чем из указанного мной не играл?