I have a program that needs to talk to another server, but to secure the traffic I’ve set up a port forwarding SSH tunnel. The only problem is that this tunnel needs to be kept alive and started when the server boots up. Here is how, using
For the server you want to make connections from follow these instructions.
/etc/inittaband insert this code somewhere near the bottom `
sm:345:respawn:/usr/bin/ssh -N -L 3307:127.0.0.1:3306 -l admin 192.168.1.5 ` Let’s break it down
- sm This is just an random two letter code that distinguishes it from other processes inside inittab
- 345 These are run-levels that you want the process to run.
- respawn What to do if the process dies, respawn it
- /usr/bin/ssh ssh binary
- -N Tells SSH not to run any remote command after the connection has been established
- -L 3307:127.0.0.1:3306 This tells SSH to set up a tunnel with local port being 3307, remote host 127.0.0.1, remote port 3306
- -l admin What user to log in by
- 192.168.1.5 Remote host to SSH into
For those familiar with SSH, it should go without saying that you need to set up pre-shared keys to automatically log into the remote server
Did this help you out? It took me a few days to piece together all this information together, I hope this saves you some time (who knows, maybe the future me will be thankful I wrote this down). Let me know your thoughts. email@example.com