2

I'm having an ssh tunnel connection which works fine from the command-line;

ssh -f -N -L 4444:to.somewhere.com:80 user@xxx.xxx.xxx.xxx -p 22

Now I'm trying to make this connect to connect on demand with xinetd. I've put this custom port in /etc/service (tool 4444/tcp), and made a config file in /etc/xinetd.d;

service tool
{
   socket_type     = stream
   instances       = 1
   wait            = no
   user            = root
   server          = /usr/bin/ssh
   server_args     = -f -N -L 4444:to.somewhere.com:80 user@xxx.xxx.xxx.xxx -p 22
   port            = 4444
   disable         = no
}

After restarting xinetd I try to connect to this poort with a wget and get the message;

bind: Address already in use

lsof -i nor netstat -a don't show any open 4444 on forehand.

Ezeyme
  • 193
  • 6

1 Answers1

2

The reason is that xinitd will bind to the port, and when ssh tries to use it, the port is already in use. To use xinetd, you should communicate with stdin/stdout with the child process.

You can find a pointer how to manage a ssh tunnel with xinetd here:

http://www.debian-administration.org/articles/487

HBruijn
  • 72,524
  • 21
  • 127
  • 192
Dan Andreatta
  • 5,384
  • 2
  • 23
  • 14
  • Yes, thank you, that did the trick! Although I knew that the problem was that the port was already in use I couldn't figure out how to setup the connection without the tunnel. When using the command="etc.etc." in de authorized_keys on the remote host it works flawlessly. – Ezeyme Feb 22 '12 at 15:48
  • Would you please post a plot of the solution. URL is not working any more. – Boris Brodski Aug 27 '22 at 08:16
  • @BorisBrodski https://web.archive.org/web/20190503084658/https://debian-administration.org/article/487/SMTP_via_a_SSH_tunnel – HBruijn Aug 27 '22 at 08:20