Переадресація порту SSH з автоматичним підключенням, виконання сценарію при запуску


4

Коротше кажучи, щоразу, коли мій комп'ютер завантажується, я хотів би запустити ssh-порт для переадресації портів, який знову з'єднається з сервером, якщо з'єднання перестане. Комп'ютер Debian Wheezy x64.

Початкове та успішне з'єднання можна здійснити так:

screen -dmS autossh autossh -M 29000 -N -v -p 22 -l user -i /path/to/.ssh/id_rsa -L port:my-computer:port my-server.com

Як це можна зробити для запуску при запуску? (бажано користувача, а не root). Ось зараз я запускаю програми під час завантаження:

rc.local викликає мій сценарій запуску наступним чином:

su -c "/home/username/scripts/startup" username

Наразі / home / username / script / startup містить наступне:

screen -dmS program1 python my-python-program
screen -dmS program2 python my-python-program2
screen -dmS autossh autossh -M 29000 -N -v -p 22 -l user -i /path/to/.ssh/id_rsa -L port:my-computer:port my-server.com

Після завантаження всі три програми, здається, запущені (за екраном списку -ls). Проблема з програмою1 або програмою 2. Немає жодної проблеми. Однак автошшш насправді не пересилає порт

Різниця між успішним з'єднанням, яке виконується мною, і невдалим запуском з'єднання при запуску, полягає в тому, що успішне з'єднання має лінію:

debug1: channel 4: free: direct-tcpip: listening port 8082 for 192.168.1.104 port 80, connect from ::1 port 59681, 
nchannels 5

Хоча невдале з’єднання продовжує намагатися так:

debug1: Connection to port 8082 forwarding to 192.168.1.104 port 80 requested.
debug1: channel 4: new [direct-tcpip]
debug1: Connection to port 8082 forwarding to 192.168.1.104 port 80 requested.
debug1: channel 5: new [direct-tcpip]
debug1: Connection to port 8082 forwarding to 192.168.1.104 port 80 requested.
debug1: channel 6: new [direct-tcpip]
debug1: Connection to port 8082 forwarding to 192.168.1.104 port 80 requested.
debug1: channel 7: new [direct-tcpip]
debug1: Connection to port 8082 forwarding to 192.168.1.104 port 80 requested.
debug1: channel 8: new [direct-tcpip]

Будь-яка ідея, що не так? Чому програма добре працює, коли я запускаю її вручну, але не всередині мого сценарію запуску?


Вибачте - у вас немає часу на повну відповідь, але: harding.motd.ca/autossh повинен допомогти вам на цьому шляху.
FreudianSlip

Відповіді:


3

Ознайомтесь з програмою autossh для автоматичного повторного підключення. екран не заплутається, оскільки ви завжди вказуєте зовнішні команди та прапори для цих команд після конкретних екранів.


Автошшш працює чудово, дякую. Мені важко змусити його почати з завантаження. Мені подобається використовувати свій сценарій запуску для всього (і він добре працював до цих пір, починаючи все інше). Однак для аутошів це не працює. Я відредагував своє запитання вище, будь ласка, подивіться на нього.
Oddworld

1
Дякую, що вказали мені на автошшш, це чудово працює! Тепер моя єдина проблема - це запустити його при запуску. З якоїсь дивної причини, здається, працює добре, коли я запускаю його вручну, але не тоді, коли це є в моєму сценарії запуску. Коефіцієнт
Oddworld
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.