IETF-SSH archive

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

Re: Whither USERAUTH_BANNER?



Simon Tatham <anakin%pobox.com@localhost> wrote:
> Should there be something I can do about this? What I'd like is
> something like an SSH_MSG_PING, which I can send and then wait for a
> reply, so that I could then receive the USERAUTH_BANNER while
> waiting for the PING_REPLY. If you see what I mean.

I've now thought of a concrete proposal for this. It involves a new
message, SSH_MSG_USERAUTH_SEND_BANNER.

 - The client MAY send USERAUTH_SEND_BANNER after starting the
   userauth protocol but before sending any USERAUTH_REQUESTs.

 - The server MUST respond to USERAUTH_SEND_BANNER with either
   USERAUTH_FAILURE or USERAUTH_BANNER.

 - Older servers will respond to USERAUTH_SEND_BANNER with
   MSG_UNIMPLEMENTED but otherwise ignore it.

Hence, the possibilities are:

 - New server with no banner. Client sends USERAUTH_SEND_BANNER;
   server sends USERAUTH_FAILURE (`I have no banner').

 - New server with banner. Client sends USERAUTH_SEND_BANNER; server
   sends USERAUTH_BANNER.

 - Old server with no banner. Client sends USERAUTH_SEND_BANNER;
   server sends MSG_UNIMPLEMENTED.

 - Old server with banner. Client sends USERAUTH_SEND_BANNER; server
   had already sent USERAUTH_BANNER. Client receives and prints
   banner. Subsequently, client sends first USERAUTH_REQUEST. When
   it reads replies to this, the first thing it receives is
   MSG_UNIMPLEMENTED with the sequence number of the SEND_BANNER
   packet. It ignores this and reads another packet, which is the
   response to USERAUTH_REQUEST. Authentication proceeds as normal.

So unless there's a server out there which fails to behave correctly
with respect to unimplemented messages, this method should be
completely backwards compatible.

Cheers,
Simon
-- 
Simon Tatham         "loop, infinite _see_ infinite loop"
<anakin%pobox.com@localhost>     - Index, Borland Pascal Language Guide



Home | Main Index | Thread Index | Old Index