Файл tail на самом деле не ваша проблема - вы можете смоделировать его с помощью dispatch_source. Трудно написать самому себе клиент ssh. Есть несколько клиентов с открытым исходным кодом, но, насколько я знаю, ни один из них не является действительно либеральным. Также некоторые имеют проблемные лицензии.
Использование NStask, вероятно, будет либо с открытым исходным кодом Librey и на 75 строк меньше связующего кода, либо примерно на 3 000 строк кода меньше (извините, догадки, я никогда не писал клиента ssh v2, только v1).
NStask обычно более хрупок, чем встроенный код, но с ssh основным источником хрупкости, вероятно, является сеть + удаленная конфигурация + локальная конфигурация. NStask потеряется в шуме.
Я бы предпочел использовать NStask здесь.