Почему не работает автозагрузка в linux (другие способы автостарта ssh туннеля)?
-i ~/.ssh/mykeys.pem
Он ищет приватный ключ в домашнем каталоге текущего пользователя. Когда вы запускаете скрипт от себя -- в вашем, когда от init -- в /root
Отчет для любителей детективов. Шерлок отдыхает.
В общем, не стартует система. То стартует, то не стартует, в зависимости от того, через сколько секунд отсчета ты выберешь систему для загрузки. 
Запустился в фейлсейф режиме. Подключаюсь по ssh через терминал к серверу - подключается. Теперь через порт 5544 с домашнего компа подключаюсь через этот сервер к тому, колдовство над которым здесь обсуждалось. А мне выдается connection refused, хотя раньше всегда абсолютно все подключалось без проблем. 
Иду обратно к объекту колдовства и замечаю, что в терминале перед подключением к серверу висит сообщение, что через порт 5544 ничего не проходит. Внимание, момент осенения. Понимаю, что порт 5544 уже используется. Но в crontab я все убрал! Так что же с портом? Так ведь он уже используется! Так значит изначальный скрипт работал все это время! Я-то думал, что если скрипт работает, то на рабочем столе должно вылезти окошко терминала с подключенным сервером. А оказывается, это все где-то в фоне происходит (вот прямо сейчас я не понимаю, как мне попасть в этот терминал, если он запускается в фоне, хорошо, что мне это не нужно). Тут все начинает распутываться, я понимаю, что проблемы с загрузкой системы были из-за интервала запуска autossh в 20 секунд. Т.е. если я успевал быстро войти в систему, то она загружалась, если я ждал 5 секунд, пока вход будет произведен автоматически, то там не успевало загрузиться ssh из init.d. 
А теперь еще прикол. Из crontab при загрузке системы мой скрипт, оказывается, не выполняется, но выполняется другая программа (btsync). Я этого не знал и поэтому решил, что этот способ мне подходит. В то время, как по ssh подключение осуществлялось из скрипта из init.d через автозагрузку update-rc.d. 
Вот так вот.