Originally Posted by
al37919
6. Попытка с помощью переменной AUTOSSH_PATH указать явно, где лежит правильный ssh к успеху не приводит.
Мне почему то представляется, что он хочет не /opt/bin, а /opt/bin/ssh
P.S. Когда разберетесь, не забудьте подробно описать
Code:
export AUTOSSH_PATH = "/opt/bin/ssh"
- так находит правильный ssh, спасибо.
Поскольку у меня теперь все работает, то дальше небольшая инструкция:
Автоматически создаваемый и поддерживаемый ssh-туннель, когда он инициируется со стороны роутера ASUS.
1. Устанавливаем самую свежую версию ipkg
2. Устанавливаем пакет autossh, доступный в ipkg
3. Генерим пару ключей протокола RSA с помощью утилиты ssh-keygen, которая включена в пакет autossh
4. Копируем сгенерированный публичный ключ (ssh_host_rsa_key.pub) на удаленный сервер в вашу домашнюю директорию в файл с именем .ssh/authorized_keys
5. Копируем локальный приватный ключ (ssh_host_rsa_key) в свою домашнюю директорию на роутере ASUS: /tmp/local/root/.ssh/
6. Добавляем в файл post-boot:
Code:
export AUTOSSH_PATH="/opt/bin/ssh"
# Вместо порта 3333 можно указать любой порт,
# который не жалко занять на удаленном хосте,
# при этом на роутере ASUS будет занят как этот же
# номер порта, так и порт с номером
# на единицу большим указанного
export AUTOSSH_PORT="3333"
export AUTOSSH_GATETIME="0"
autossh user@ssh_host -i your_private_ssh_key_file_name -N ssh_port_forwarding_options &
7. Не забываем сохранить все во flash:
Code:
flashfs save && flashfs commit && flashfs enable
-------------------------------------------------------------------------
P.S. Проверил работу ssh из стандартной прошивки WL500gp-1.9.2.7-10. В самом деле, если генерировать ключи длиной 1024 бита, то автоматическая авторизация без пароля проходит без проблем.
Code:
dropbearkey -t rsa -f dropbear_key -s 1024
Да и запуск в открепленном режиме с ключом -N тоже работает. Поэтому если не нужно отслеживание реального наличия связи через туннель, то можно обойтись и без установки пакета autossh.