Re: Determining the reverse port tunnels

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

 



On Tue, 21 Apr 2015, Cary FitzHugh wrote:

> Hi all,
> 
> If I were to connect to a system with a command like this:
> 
> ssh -R *:0:localhost:3000 user@server
> 
> Is there any way for openssh to tell my shell what ports it opened for me?
> 
> i.e. what port on server is my localhost:3000 exposed to?
> 
> I know that there is a stderr / stdout printout of the port, but wonder if
> there is a way to know in my shell.  Maybe an env var?  Maybe some grepping
> of netstat?

At the moment, the only way is to use the multiplexing support. E.g.

$ ssh -nNfS -oControlPath=~/.ssh/ctl-%r@%h:%p 127.0.0.1
$ ssh -oControlPath=~/.ssh/ctl-%r@%h:%p -O forward -R 0:127.0.0.1:9999 127.0.0.1
Allocated port 27313 for mux remote forward to 127.0.0.1:9999
Allocated port 27313 for remote forward to 127.0.0.1:9999
27313

The double logging is a bug - patch below.

In general, it's unreliable to put the port number in an environment
variable because the remote shell session is separate to the forwardings
and may be establised before they are set up.

-d

Index: mux.c
===================================================================
RCS file: /cvs/src/usr.bin/ssh/mux.c,v
retrieving revision 1.50
diff -u -p -r1.50 mux.c
--- mux.c	20 Jan 2015 23:14:00 -0000	1.50
+++ mux.c	22 Apr 2015 01:30:43 -0000
@@ -592,7 +594,7 @@ mux_confirm_remote_forward(int type, u_i
 	if (type == SSH2_MSG_REQUEST_SUCCESS) {
 		if (rfwd->listen_port == 0) {
 			rfwd->allocated_port = packet_get_int();
-			logit("Allocated port %u for mux remote forward"
+			debug("Allocated port %u for mux remote forward"
 			    " to %s:%d", rfwd->allocated_port,
 			    rfwd->connect_host, rfwd->connect_port);
 			buffer_put_int(&out, MUX_S_REMOTE_PORT);
@@ -1703,7 +1716,7 @@ mux_client_forward(int fd, int cancel_fl
 		if (cancel_flag)
 			fatal("%s: got MUX_S_REMOTE_PORT for cancel", __func__);
 		fwd->allocated_port = buffer_get_int(&m);
-		logit("Allocated port %u for remote forward to %s:%d",
+		verbose("Allocated port %u for remote forward to %s:%d",
 		    fwd->allocated_port,
 		    fwd->connect_host ? fwd->connect_host : "",
 		    fwd->connect_port);
_______________________________________________
openssh-unix-dev mailing list
openssh-unix-dev@xxxxxxxxxxx
https://lists.mindrot.org/mailman/listinfo/openssh-unix-dev




[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux