Я могу предположить здесь, но правильно ли вы цитируете? Когда вы запускаете ssh user@host cd $(ls | tail -1)
, подстановка команд выполняется на клиенте, а не на сервере.
Вы должны использовать:
ssh user@host 'cd $(ls | tail -1)'
Как уже упоминалось, ваша команда ничего не делает. cd
изменит рабочий каталог на сервере, а затем сеанс s sh завершится.