Коротше кажучи, щоразу, коли мій комп'ютер завантажується, я хотів би запустити 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]
Будь-яка ідея, що не так? Чому програма добре працює, коли я запускаю її вручну, але не всередині мого сценарію запуску?