Question About Dynamic Remote Forwarding

Chris Rapier rapier at psc.edu
Sat Jun 10 04:49:40 AEST 2023


Hi all,

When a client requests dynamic remote forwarding with -R it delays 
forking into the background. In ssh.c we see

if (options.fork_after_authentication) {
     if (options.exit_on_forward_failure &&
         options.num_remote_forwards > 0) {
             debug("deferring postauth fork until remote forward "
                   "confirmation received");
      } else
          fork_postauth(ssh);
}


This seems to depend on forwarding_success() for it to then call 
fork_postauth.

If I'm reading this correctly the client sends out a number of forward 
requests which is tracked via forward_confirms_pending in ssh.c.

Is there any equivalent on the server side to track the number of 
received requests?

I ask because I'm trying, for various reasons, to trigger a rekey on the 
server side *after* the client forks in a dynamic remote forward 
scenario. I know that the server can't actually know for certain if the 
client has or hasn't forked but if I could track the number of 
confirmations the server has sent I can use that as a reasonable proxy. 
I could use an ssh control message to do this but I'd rather not if I 
don't have to.

Thanks,

Chris


More information about the openssh-unix-dev mailing list